diff --git a/contracts/contracts/ThreeSwap.sol b/contracts/contracts/ThreeSwap.sol index c1b018b..582b151 100644 --- a/contracts/contracts/ThreeSwap.sol +++ b/contracts/contracts/ThreeSwap.sol @@ -7,7 +7,7 @@ interface IOracle { function oracleValues(string memory key) external view returns (string memory value, uint256 blockNumber); } -contract ThreeSwap { +contract TokenSwap { enum TokenType { WBTC, WETH, USDC } IERC20[3] public tokens; @@ -67,17 +67,21 @@ contract ThreeSwap { } function swap(uint256 amount, TokenType from, TokenType to) external returns (uint256) { - require(from != to, "Cannot swap the same token"); - - uint256 priceFrom = _getPriceFromOracle(from); - uint256 priceTo = _getPriceFromOracle(to); - - // Adjust for decimal places - uint256 amountTo = (amount * priceFrom * 10**DECIMALS) / priceTo; + require(from != to, "Cannot swap the same token"); + + uint256 priceFrom = _getPriceFromOracle(from); + uint256 priceTo = _getPriceFromOracle(to); + + // Adjust for decimal places and use scaling to maintain precision + // Calculate in a way that minimizes overflow risk + uint256 amountTo = (amount * priceFrom) / priceTo; + + // Scaling factor applied after multiplying by priceFrom to maintain precision + amountTo = amountTo * (10**DECIMALS) / (10**DECIMALS); + + require(tokens[uint256(from)].transferFrom(msg.sender, address(this), amount), "Token transfer failed"); + require(tokens[uint256(to)].transfer(msg.sender, amountTo), "Token transfer failed"); - require(tokens[uint256(from)].transferFrom(msg.sender, address(this), amount), "Token transfer failed"); - require(tokens[uint256(to)].transfer(msg.sender, amountTo), "Token transfer failed"); - - return amountTo; - } + return amountTo; } +} \ No newline at end of file diff --git a/contracts/contracts/Tokens/USDC.sol b/contracts/contracts/Tokens/USDC.sol index dfde187..46c0c43 100644 --- a/contracts/contracts/Tokens/USDC.sol +++ b/contracts/contracts/Tokens/USDC.sol @@ -5,9 +5,16 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract USDC is ERC20, Ownable { + uint256 public constant FIFTY_USDC = 50 * 10**18; + constructor() ERC20("USDC", "USDC") Ownable(msg.sender) {} function mint(address to, uint256 amount) external onlyOwner { _mint(to, amount); } + + // Public mint function to mint $50 USDC + function mintFiftyUSDC() external { + _mint(msg.sender, FIFTY_USDC); + } } \ No newline at end of file diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 20af348..18de770 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -13,6 +13,11 @@ const config: HardhatUserConfig = { hardhat: { chainId: 1337, }, + stabletestnet: { + url: "https://free.testnet.stabilityprotocol.com/zgt/othw108bixk1", + accounts: [], + hardfork: "shanghai", + }, localhost: { url: "http://127.0.0.1:8545", }, diff --git a/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.dbg.json b/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.dbg.json new file mode 100644 index 0000000..043acca --- /dev/null +++ b/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\8b024a322d9f1896d0bc14bae4af1018.json" +} \ No newline at end of file diff --git a/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.json b/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.json new file mode 100644 index 0000000..d6f3d64 --- /dev/null +++ b/contracts/ignition/deployments/chain-20180427/artifacts/TokenSwap#USDC.json @@ -0,0 +1,416 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "USDC", + "sourceName": "contracts/Tokens/USDC.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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50336040518060400160405280600481526020017f55534443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61119a80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e971d9ed893d74cd1d8244c7aeb5547151f3d5e345973751da2da032b2dd61d264736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e971d9ed893d74cd1d8244c7aeb5547151f3d5e345973751da2da032b2dd61d264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/contracts/ignition/deployments/chain-20180427/build-info/8b024a322d9f1896d0bc14bae4af1018.json b/contracts/ignition/deployments/chain-20180427/build-info/8b024a322d9f1896d0bc14bae4af1018.json new file mode 100644 index 0000000..fc9bdf3 --- /dev/null +++ b/contracts/ignition/deployments/chain-20180427/build-info/8b024a322d9f1896d0bc14bae4af1018.json @@ -0,0 +1,66497 @@ +{ + "id": "8b024a322d9f1896d0bc14bae4af1018", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.20", + "solcLongVersion": "0.8.20+commit.a1b79de6", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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 ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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 ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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.0.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 ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\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 * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\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 * 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.0.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 ERC20 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.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\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/Oracle/Oracle.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\ncontract Oracle {\r\n struct OracleData {\r\n string value;\r\n uint256 blockNumber;\r\n }\r\n\r\n mapping(string => OracleData) public oracleValues;\r\n\r\n event ValueSet(string key, string value, uint256 blockNumber);\r\n\r\n function setValue(string memory key, string memory value) public {\r\n require(bytes(key).length > 0, \"Key cannot be empty\");\r\n require(bytes(value).length > 0, \"Value cannot be empty\");\r\n oracleValues[key] = OracleData(value, block.number);\r\n emit ValueSet(key, value, block.number);\r\n }\r\n}" + }, + "contracts/SwapOracle.sol": { + "content": "// // SPDX-License-Identifier: MIT\r\n// pragma solidity ^0.8.0;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n// import \"@openzeppelin/contracts/utils/math/Math.sol\";\r\n\r\n// interface IOracle {\r\n// function oracleValues(string memory key) external view returns (string memory value, uint256 blockNumber);\r\n// }\r\n\r\n// contract TokenSwap {\r\n\r\n// IERC20 public wbtc;\r\n// IERC20 public weth;\r\n// IERC20 public usdc;\r\n// IOracle public oracle;\r\n// string public constant ORACLE_KEY_BTC = \"BTC/USD\";\r\n// string public constant ORACLE_KEY_ETH = \"ETH/USD\";\r\n// uint256 public constant DECIMALS = 18;\r\n// uint256 public constant FIXED_USDC_PRICE = 1 * 10**DECIMALS;\r\n\r\n// constructor(IERC20 _wbtc, IERC20 _weth, IERC20 _usdc, IOracle _oracle) {\r\n// wbtc = _wbtc;\r\n// weth = _weth;\r\n// usdc = _usdc;\r\n// oracle = _oracle;\r\n// }\r\n\r\n// function _getPriceFromOracle(string memory key) internal view returns (uint256) {\r\n// (string memory priceStr,) = oracle.oracleValues(key);\r\n// return _stringToUint(priceStr);\r\n// }\r\n\r\n// function _stringToUint(string memory s) internal pure returns (uint256) {\r\n// bytes memory b = bytes(s);\r\n// uint256 result = 0;\r\n// bool decimalPoint = false;\r\n// uint256 decimalPlaces = 0;\r\n\r\n// for (uint256 i = 0; i < b.length; i++) {\r\n// if (b[i] >= 0x30 && b[i] <= 0x39) {\r\n// result = result * 10 + (uint256(uint8(b[i])) - 48);\r\n// if (decimalPoint) {\r\n// decimalPlaces++;\r\n// }\r\n// } else if (b[i] == 0x2E) {\r\n// decimalPoint = true;\r\n// }\r\n// }\r\n\r\n// // Adjust the result to have 18 decimal places\r\n// if (decimalPlaces < DECIMALS) {\r\n// result = result * (10**(DECIMALS - decimalPlaces));\r\n// } else if (decimalPlaces > DECIMALS) {\r\n// result = result / (10**(decimalPlaces - DECIMALS));\r\n// }\r\n\r\n// return result;\r\n// }\r\n\r\n// function swapWBTCToUSDC(uint256 amountWBTC) external returns (uint256) {\r\n// uint256 priceWBTC = _getPriceFromOracle(ORACLE_KEY_BTC);\r\n// uint256 amountUSDC = amountWBTC.mul(priceWBTC).div(FIXED_USDC_PRICE);\r\n\r\n// require(wbtc.transferFrom(msg.sender, address(this), amountWBTC), \"WBTC transfer failed\");\r\n// require(usdc.transfer(msg.sender, amountUSDC), \"USDC transfer failed\");\r\n\r\n// return amountUSDC;\r\n// }\r\n\r\n// function swapWETHToUSDC(uint256 amountWETH) external returns (uint256) {\r\n// uint256 priceWETH = _getPriceFromOracle(ORACLE_KEY_ETH);\r\n// uint256 amountUSDC = amountWETH.mul(priceWETH).div(FIXED_USDC_PRICE);\r\n\r\n// require(weth.transferFrom(msg.sender, address(this), amountWETH), \"WETH transfer failed\");\r\n// require(usdc.transfer(msg.sender, amountUSDC), \"USDC transfer failed\");\r\n\r\n// return amountUSDC;\r\n// }\r\n\r\n// function swapUSDCToWBTC(uint256 amountUSDC) external returns (uint256) {\r\n// uint256 priceWBTC = _getPriceFromOracle(ORACLE_KEY_BTC);\r\n// uint256 amountWBTC = amountUSDC.mul(FIXED_USDC_PRICE).div(priceWBTC);\r\n\r\n// require(usdc.transferFrom(msg.sender, address(this), amountUSDC), \"USDC transfer failed\");\r\n// require(wbtc.transfer(msg.sender, amountWBTC), \"WBTC transfer failed\");\r\n\r\n// return amountWBTC;\r\n// }\r\n\r\n// function swapUSDCToWETH(uint256 amountUSDC) external returns (uint256) {\r\n// uint256 priceWETH = _getPriceFromOracle(ORACLE_KEY_ETH);\r\n// uint256 amountWETH = amountUSDC.mul(FIXED_USDC_PRICE).div(priceWETH);\r\n\r\n// require(usdc.transferFrom(msg.sender, address(this), amountUSDC), \"USDC transfer failed\");\r\n// require(weth.transfer(msg.sender, amountWETH), \"WETH transfer failed\");\r\n\r\n// return amountWETH;\r\n// }\r\n// }" + }, + "contracts/ThreeSwap.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n\r\ninterface IOracle {\r\n function oracleValues(string memory key) external view returns (string memory value, uint256 blockNumber);\r\n}\r\n\r\ncontract ThreeSwap {\r\n enum TokenType { WBTC, WETH, USDC }\r\n\r\n IERC20[3] public tokens;\r\n IOracle public oracle;\r\n string[2] public oracleKeys;\r\n uint256 public constant DECIMALS = 18;\r\n uint256 public constant FIXED_USDC_PRICE = 1 * 10**DECIMALS;\r\n\r\n constructor(IERC20 _wbtc, IERC20 _weth, IERC20 _usdc, IOracle _oracle) {\r\n tokens[uint256(TokenType.WBTC)] = _wbtc;\r\n tokens[uint256(TokenType.WETH)] = _weth;\r\n tokens[uint256(TokenType.USDC)] = _usdc;\r\n oracle = _oracle;\r\n oracleKeys[0] = \"BTC/USD\";\r\n oracleKeys[1] = \"ETH/USD\";\r\n }\r\n\r\n function _getPriceFromOracle(TokenType tokenType) internal view returns (uint256) {\r\n if (tokenType == TokenType.USDC) {\r\n return FIXED_USDC_PRICE;\r\n } else if (tokenType == TokenType.WBTC) {\r\n (string memory priceStr,) = oracle.oracleValues(oracleKeys[0]);\r\n return _stringToUint(priceStr);\r\n } else if (tokenType == TokenType.WETH) {\r\n (string memory priceStr,) = oracle.oracleValues(oracleKeys[1]);\r\n return _stringToUint(priceStr);\r\n } else {\r\n revert(\"Unsupported token type\");\r\n }\r\n }\r\n\r\n function _stringToUint(string memory s) internal pure returns (uint256) {\r\n bytes memory b = bytes(s);\r\n uint256 result = 0;\r\n bool decimalPoint = false;\r\n uint256 decimalPlaces = 0;\r\n\r\n for (uint256 i = 0; i < b.length; i++) {\r\n if (b[i] >= 0x30 && b[i] <= 0x39) {\r\n result = result * 10 + (uint256(uint8(b[i])) - 48);\r\n if (decimalPoint) {\r\n decimalPlaces++;\r\n }\r\n } else if (b[i] == 0x2E) {\r\n decimalPoint = true;\r\n }\r\n }\r\n\r\n // Adjust the result to have 18 decimal places\r\n if (decimalPlaces < DECIMALS) {\r\n result = result * (10**(DECIMALS - decimalPlaces));\r\n } else if (decimalPlaces > DECIMALS) {\r\n result = result / (10**(decimalPlaces - DECIMALS));\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function swap(uint256 amount, TokenType from, TokenType to) external returns (uint256) {\r\n require(from != to, \"Cannot swap the same token\");\r\n \r\n uint256 priceFrom = _getPriceFromOracle(from);\r\n uint256 priceTo = _getPriceFromOracle(to);\r\n \r\n // Adjust for decimal places\r\n uint256 amountTo = (amount * priceFrom * 10**DECIMALS) / priceTo;\r\n\r\n require(tokens[uint256(from)].transferFrom(msg.sender, address(this), amount), \"Token transfer failed\");\r\n require(tokens[uint256(to)].transfer(msg.sender, amountTo), \"Token transfer failed\");\r\n\r\n return amountTo;\r\n }\r\n}\r\n" + }, + "contracts/Tokens/USDC.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract USDC is ERC20, Ownable {\r\n constructor() ERC20(\"USDC\", \"USDC\") Ownable(msg.sender) {}\r\n\r\n function mint(address to, uint256 amount) external onlyOwner {\r\n _mint(to, amount);\r\n }\r\n}" + }, + "contracts/Tokens/WBTC.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract WBTC is ERC20, Ownable {\r\n constructor() ERC20(\"WBTC\", \"WBTC\") Ownable(msg.sender) {}\r\n\r\n function mint(address to, uint256 amount) external onlyOwner {\r\n _mint(to, amount);\r\n }\r\n}" + }, + "contracts/Tokens/WETH.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract USDC is ERC20, Ownable {\r\n constructor() ERC20(\"USDC\", \"USDC\") Ownable(msg.sender) {}\r\n\r\n function mint(address to, uint256 amount) external onlyOwner {\r\n _mint(to, amount);\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": "3420", + "formattedMessage": "Warning: Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.20;\"\n--> contracts/SwapOracle.sol\n\n", + "message": "Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.20;\"", + "severity": "warning", + "sourceLocation": { + "end": -1, + "file": "contracts/SwapOracle.sol", + "start": -1 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 933 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 934, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 933, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 933, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 933 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "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": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "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": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "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": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "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": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "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": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 284 + ], + "IERC20Errors": [ + 189 + ], + "IERC721Errors": [ + 237 + ] + }, + "id": 285, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 150, + "nodeType": "StructuredDocumentation", + "src": "138:139:1", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 189, + "linearizedBaseContracts": [ + 189 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 151, + "nodeType": "StructuredDocumentation", + "src": "307:309:1", + "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": 159, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "652:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "668:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 157, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:1", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "685:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:1" + }, + "src": "621:80:1" + }, + { + "documentation": { + "id": 160, + "nodeType": "StructuredDocumentation", + "src": "707:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 164, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 162, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:1", + "nodeType": "VariableDeclaration", + "scope": 164, + "src": "889:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:1" + }, + "src": "864:41:1" + }, + { + "documentation": { + "id": 165, + "nodeType": "StructuredDocumentation", + "src": "911:159:1", + "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": 169, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:1", + "nodeType": "VariableDeclaration", + "scope": 169, + "src": "1102:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:1" + }, + "src": "1075:45:1" + }, + { + "documentation": { + "id": 170, + "nodeType": "StructuredDocumentation", + "src": "1126:345:1", + "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": 178, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1509:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1526:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:1", + "nodeType": "VariableDeclaration", + "scope": 178, + "src": "1545:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:1" + }, + "src": "1476:85:1" + }, + { + "documentation": { + "id": 179, + "nodeType": "StructuredDocumentation", + "src": "1567:174:1", + "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": 183, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:1", + "nodeType": "VariableDeclaration", + "scope": 183, + "src": "1773:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:1" + }, + "src": "1746:45:1" + }, + { + "documentation": { + "id": 184, + "nodeType": "StructuredDocumentation", + "src": "1797:195:1", + "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": 188, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:1", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "2023:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:1" + }, + "src": "1997:43:1" + } + ], + "scope": 285, + "src": "278:1764:1", + "usedErrors": [ + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 190, + "nodeType": "StructuredDocumentation", + "src": "2044:141:1", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 237, + "linearizedBaseContracts": [ + 237 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 191, + "nodeType": "StructuredDocumentation", + "src": "2216:219:1", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 195, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 193, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:1", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "2465:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:1" + }, + "src": "2440:40:1" + }, + { + "documentation": { + "id": 196, + "nodeType": "StructuredDocumentation", + "src": "2486:132:1", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 200, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:1", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "2652:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:1" + }, + "src": "2623:46:1" + }, + { + "documentation": { + "id": 201, + "nodeType": "StructuredDocumentation", + "src": "2675:289:1", + "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": 209, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "2996:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "3012:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:1", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "3029:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:1" + }, + "src": "2969:75:1" + }, + { + "documentation": { + "id": 210, + "nodeType": "StructuredDocumentation", + "src": "3050:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 214, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:1", + "nodeType": "VariableDeclaration", + "scope": 214, + "src": "3233:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:1" + }, + "src": "3207:42:1" + }, + { + "documentation": { + "id": 215, + "nodeType": "StructuredDocumentation", + "src": "3255:159:1", + "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": 219, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:1", + "nodeType": "VariableDeclaration", + "scope": 219, + "src": "3447:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:1" + }, + "src": "3419:46:1" + }, + { + "documentation": { + "id": 220, + "nodeType": "StructuredDocumentation", + "src": "3471:247:1", + "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": 226, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:1", + "nodeType": "VariableDeclaration", + "scope": 226, + "src": "3756:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 224, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:1", + "nodeType": "VariableDeclaration", + "scope": 226, + "src": "3774:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:1" + }, + "src": "3723:68:1" + }, + { + "documentation": { + "id": 227, + "nodeType": "StructuredDocumentation", + "src": "3797:174:1", + "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": 231, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:1", + "nodeType": "VariableDeclaration", + "scope": 231, + "src": "4004:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:1" + }, + "src": "3976:46:1" + }, + { + "documentation": { + "id": 232, + "nodeType": "StructuredDocumentation", + "src": "4028:197:1", + "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": 236, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:1", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "4258:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:1" + }, + "src": "4230:46:1" + } + ], + "scope": 285, + "src": "2186:2092:1", + "usedErrors": [ + 195, + 200, + 209, + 214, + 219, + 226, + 231, + 236 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "4280:143:1", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 284, + "linearizedBaseContracts": [ + 284 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 239, + "nodeType": "StructuredDocumentation", + "src": "4455:361:1", + "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": 249, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4854:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 243, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4870:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 245, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4887:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 247, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:1", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "4903:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:1" + }, + "src": "4821:99:1" + }, + { + "documentation": { + "id": 250, + "nodeType": "StructuredDocumentation", + "src": "4926:152:1", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 254, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 252, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:1", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "5110:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 251, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:1" + }, + "src": "5083:43:1" + }, + { + "documentation": { + "id": 255, + "nodeType": "StructuredDocumentation", + "src": "5132:159:1", + "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": 259, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 257, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:1", + "nodeType": "VariableDeclaration", + "scope": 259, + "src": "5325:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:1" + }, + "src": "5296:47:1" + }, + { + "documentation": { + "id": 260, + "nodeType": "StructuredDocumentation", + "src": "5349:256:1", + "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": 266, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:1", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "5645:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:1", + "nodeType": "VariableDeclaration", + "scope": 266, + "src": "5663:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:1" + }, + "src": "5610:68:1" + }, + { + "documentation": { + "id": 267, + "nodeType": "StructuredDocumentation", + "src": "5684:174:1", + "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": 271, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:1", + "nodeType": "VariableDeclaration", + "scope": 271, + "src": "5892:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:1" + }, + "src": "5863:47:1" + }, + { + "documentation": { + "id": 272, + "nodeType": "StructuredDocumentation", + "src": "5916:197:1", + "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": 276, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 274, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:1", + "nodeType": "VariableDeclaration", + "scope": 276, + "src": "6147:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 273, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:1" + }, + "src": "6118:47:1" + }, + { + "documentation": { + "id": 277, + "nodeType": "StructuredDocumentation", + "src": "6171:280:1", + "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": 283, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:1", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "6488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:1", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "6507:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:1" + }, + "src": "6456:73:1" + } + ], + "scope": 285, + "src": "4424:2107:1", + "usedErrors": [ + 249, + 254, + 259, + 266, + 271, + 276, + 283 + ], + "usedEvents": [] + } + ], + "src": "112:6420:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "Context": [ + 933 + ], + "ERC20": [ + 799 + ], + "IERC20": [ + 877 + ], + "IERC20Errors": [ + 189 + ], + "IERC20Metadata": [ + 903 + ] + }, + "id": 800, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 286, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 288, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 878, + "src": "131:36:2", + "symbolAliases": [ + { + "foreign": { + "id": 287, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "139:6:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "file": "./extensions/IERC20Metadata.sol", + "id": 290, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 904, + "src": "168:63:2", + "symbolAliases": [ + { + "foreign": { + "id": 289, + "name": "IERC20Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 903, + "src": "176:14:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 292, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 934, + "src": "232:48:2", + "symbolAliases": [ + { + "foreign": { + "id": 291, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 933, + "src": "240:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 294, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 800, + "sourceUnit": 285, + "src": "281:65:2", + "symbolAliases": [ + { + "foreign": { + "id": 293, + "name": "IERC20Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 189, + "src": "289:12:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 296, + "name": "Context", + "nameLocations": [ + "1428:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 933, + "src": "1428:7:2" + }, + "id": 297, + "nodeType": "InheritanceSpecifier", + "src": "1428:7:2" + }, + { + "baseName": { + "id": 298, + "name": "IERC20", + "nameLocations": [ + "1437:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "1437:6:2" + }, + "id": 299, + "nodeType": "InheritanceSpecifier", + "src": "1437:6:2" + }, + { + "baseName": { + "id": 300, + "name": "IERC20Metadata", + "nameLocations": [ + "1445:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 903, + "src": "1445:14:2" + }, + "id": 301, + "nodeType": "InheritanceSpecifier", + "src": "1445:14:2" + }, + { + "baseName": { + "id": 302, + "name": "IERC20Errors", + "nameLocations": [ + "1461:12:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 189, + "src": "1461:12:2" + }, + "id": 303, + "nodeType": "InheritanceSpecifier", + "src": "1461:12:2" + } + ], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 295, + "nodeType": "StructuredDocumentation", + "src": "348:1052:2", + "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 ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification." + }, + "fullyImplemented": true, + "id": 799, + "linearizedBaseContracts": [ + 799, + 189, + 903, + 877, + 933 + ], + "name": "ERC20", + "nameLocation": "1419:5:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1524:9:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1480:53:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 306, + "keyName": "account", + "keyNameLocation": "1496:7:2", + "keyType": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1488:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1480:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1507:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "_allowances", + "nameLocation": "1612:11:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1540:83:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 312, + "keyName": "account", + "keyNameLocation": "1556:7:2", + "keyType": { + "id": 308, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1548:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1540:63:2", + "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": 311, + "keyName": "spender", + "keyNameLocation": "1583:7:2", + "keyType": { + "id": 309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1575:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1567:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1594:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "_totalSupply", + "nameLocation": "1646:12:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1630:28:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1630:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 317, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1680:5:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1665:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 316, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1665:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 319, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1706:7:2", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "1691:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1691:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 335, + "nodeType": "Block", + "src": "1952:57:2", + "statements": [ + { + "expression": { + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 327, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "1962:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 328, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 322, + "src": "1970:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1962:13:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 330, + "nodeType": "ExpressionStatement", + "src": "1962:13:2" + }, + { + "expression": { + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 331, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "1985:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 332, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 324, + "src": "1995:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1985:17:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 334, + "nodeType": "ExpressionStatement", + "src": "1985:17:2" + } + ] + }, + "documentation": { + "id": 320, + "nodeType": "StructuredDocumentation", + "src": "1720:171:2", + "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": 336, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 322, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1922:5:2", + "nodeType": "VariableDeclaration", + "scope": 336, + "src": "1908:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 321, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1908:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1943:7:2", + "nodeType": "VariableDeclaration", + "scope": 336, + "src": "1929:21:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 323, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1907:44:2" + }, + "returnParameters": { + "id": 326, + "nodeType": "ParameterList", + "parameters": [], + "src": "1952:0:2" + }, + "scope": 799, + "src": "1896:113:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 890 + ], + "body": { + "id": 344, + "nodeType": "Block", + "src": "2134:29:2", + "statements": [ + { + "expression": { + "id": 342, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "2151:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 341, + "id": 343, + "nodeType": "Return", + "src": "2144:12:2" + } + ] + }, + "documentation": { + "id": 337, + "nodeType": "StructuredDocumentation", + "src": "2015:54:2", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 345, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2083:4:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 338, + "nodeType": "ParameterList", + "parameters": [], + "src": "2087:2:2" + }, + "returnParameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "2119:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 339, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2119:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2118:15:2" + }, + "scope": 799, + "src": "2074:89:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 896 + ], + "body": { + "id": 353, + "nodeType": "Block", + "src": "2338:31:2", + "statements": [ + { + "expression": { + "id": 351, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 319, + "src": "2355:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 350, + "id": 352, + "nodeType": "Return", + "src": "2348:14:2" + } + ] + }, + "documentation": { + "id": 346, + "nodeType": "StructuredDocumentation", + "src": "2169:102:2", + "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." + }, + "functionSelector": "95d89b41", + "id": 354, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2285:6:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [], + "src": "2291:2:2" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 354, + "src": "2323:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2323:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2322:15:2" + }, + "scope": 799, + "src": "2276:93:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 902 + ], + "body": { + "id": 362, + "nodeType": "Block", + "src": "3058:26:2", + "statements": [ + { + "expression": { + "hexValue": "3138", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3075:2:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "functionReturnParameters": 359, + "id": 361, + "nodeType": "Return", + "src": "3068:9:2" + } + ] + }, + "documentation": { + "id": 355, + "nodeType": "StructuredDocumentation", + "src": "2375:622:2", + "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": 363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3011:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "3019:2:2" + }, + "returnParameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "3051:5:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 357, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3051:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3050:7:2" + }, + "scope": 799, + "src": "3002:82:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 826 + ], + "body": { + "id": 371, + "nodeType": "Block", + "src": "3205:36:2", + "statements": [ + { + "expression": { + "id": 369, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "3222:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 368, + "id": 370, + "nodeType": "Return", + "src": "3215:19:2" + } + ] + }, + "documentation": { + "id": 364, + "nodeType": "StructuredDocumentation", + "src": "3090:49:2", + "text": " @dev See {IERC20-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "3153:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "3164:2:2" + }, + "returnParameters": { + "id": 368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 367, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 372, + "src": "3196:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3196:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3195:9:2" + }, + "scope": 799, + "src": "3144:97:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 834 + ], + "body": { + "id": 384, + "nodeType": "Block", + "src": "3373:42:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 380, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "3390:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 382, + "indexExpression": { + "id": 381, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 375, + "src": "3400:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3390:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 379, + "id": 383, + "nodeType": "Return", + "src": "3383:25:2" + } + ] + }, + "documentation": { + "id": 373, + "nodeType": "StructuredDocumentation", + "src": "3247:47:2", + "text": " @dev See {IERC20-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 385, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3308:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 375, + "mutability": "mutable", + "name": "account", + "nameLocation": "3326:7:2", + "nodeType": "VariableDeclaration", + "scope": 385, + "src": "3318:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3318:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3317:17:2" + }, + "returnParameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 385, + "src": "3364:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3364:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3363:9:2" + }, + "scope": 799, + "src": "3299:116:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 844 + ], + "body": { + "id": 408, + "nodeType": "Block", + "src": "3685:103:2", + "statements": [ + { + "assignments": [ + 396 + ], + "declarations": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3703:5:2", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "3695:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3695:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 399, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 397, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "3711:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3711:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3695:28:2" + }, + { + "expression": { + "arguments": [ + { + "id": 401, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "3743:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 402, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 388, + "src": "3750:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "3754:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 400, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "3733:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3733:27:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 405, + "nodeType": "ExpressionStatement", + "src": "3733:27:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3777:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 394, + "id": 407, + "nodeType": "Return", + "src": "3770:11:2" + } + ] + }, + "documentation": { + "id": 386, + "nodeType": "StructuredDocumentation", + "src": "3421:184:2", + "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": 409, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "3619:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "to", + "nameLocation": "3636:2:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3628:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3628:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 390, + "mutability": "mutable", + "name": "value", + "nameLocation": "3648:5:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3640:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3640:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3627:27:2" + }, + "returnParameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "3679:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 392, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3679:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3678:6:2" + }, + "scope": 799, + "src": "3610:178:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 854 + ], + "body": { + "id": 425, + "nodeType": "Block", + "src": "3935:51:2", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 419, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "3952:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 421, + "indexExpression": { + "id": 420, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "3964:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3952:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 423, + "indexExpression": { + "id": 422, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "3971:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3952:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 418, + "id": 424, + "nodeType": "Return", + "src": "3945:34:2" + } + ] + }, + "documentation": { + "id": 410, + "nodeType": "StructuredDocumentation", + "src": "3794:47:2", + "text": " @dev See {IERC20-allowance}." + }, + "functionSelector": "dd62ed3e", + "id": 426, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3855:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 412, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3873:5:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3865:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3865:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3888:7:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3880:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3880:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3864:32:2" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "3926:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3926:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3925:9:2" + }, + "scope": 799, + "src": "3846:140:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 864 + ], + "body": { + "id": 449, + "nodeType": "Block", + "src": "4372:107:2", + "statements": [ + { + "assignments": [ + 437 + ], + "declarations": [ + { + "constant": false, + "id": 437, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4390:5:2", + "nodeType": "VariableDeclaration", + "scope": 449, + "src": "4382:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4382:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 440, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 438, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "4398:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4398:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4382:28:2" + }, + { + "expression": { + "arguments": [ + { + "id": 442, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 437, + "src": "4429:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 443, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "4436:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "4445:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 441, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 690, + "src": "4420:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4420:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 446, + "nodeType": "ExpressionStatement", + "src": "4420:31:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 435, + "id": 448, + "nodeType": "Return", + "src": "4461:11:2" + } + ] + }, + "documentation": { + "id": 427, + "nodeType": "StructuredDocumentation", + "src": "3992:296:2", + "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": 450, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4302:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 429, + "mutability": "mutable", + "name": "spender", + "nameLocation": "4318:7:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4310:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4310:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 431, + "mutability": "mutable", + "name": "value", + "nameLocation": "4335:5:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4327:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4327:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4309:32:2" + }, + "returnParameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "4366:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 433, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4366:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4365:6:2" + }, + "scope": 799, + "src": "4293:186:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 876 + ], + "body": { + "id": 481, + "nodeType": "Block", + "src": "5132:151:2", + "statements": [ + { + "assignments": [ + 463 + ], + "declarations": [ + { + "constant": false, + "id": 463, + "mutability": "mutable", + "name": "spender", + "nameLocation": "5150:7:2", + "nodeType": "VariableDeclaration", + "scope": 481, + "src": "5142:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5142:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 466, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 464, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "5160:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5160:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5142:30:2" + }, + { + "expression": { + "arguments": [ + { + "id": 468, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "5198:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 469, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "5204:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 470, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 457, + "src": "5213:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 467, + "name": "_spendAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "5182:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5182:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 472, + "nodeType": "ExpressionStatement", + "src": "5182:37:2" + }, + { + "expression": { + "arguments": [ + { + "id": 474, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "5239:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 475, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 455, + "src": "5245:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 476, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 457, + "src": "5249:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 473, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5229:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5229:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 478, + "nodeType": "ExpressionStatement", + "src": "5229:26:2" + }, + { + "expression": { + "hexValue": "74727565", + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5272:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 461, + "id": 480, + "nodeType": "Return", + "src": "5265:11:2" + } + ] + }, + "documentation": { + "id": 451, + "nodeType": "StructuredDocumentation", + "src": "4485:549:2", + "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\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": 482, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "5048:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "from", + "nameLocation": "5069:4:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5061:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5061:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "to", + "nameLocation": "5083:2:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5075:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5075:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 457, + "mutability": "mutable", + "name": "value", + "nameLocation": "5095:5:2", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5087:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5087:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5060:41:2" + }, + "returnParameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "5126:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 459, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5126:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5125:6:2" + }, + "scope": 799, + "src": "5039:244:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "5725:231:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 492, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5739:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5755:1:2", + "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": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5747:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5747:7:2", + "typeDescriptions": {} + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5747:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5739:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 506, + "nodeType": "IfStatement", + "src": "5735:86:2", + "trueBody": { + "id": 505, + "nodeType": "Block", + "src": "5759:62:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5807:1:2", + "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": 500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5799:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5799:7:2", + "typeDescriptions": {} + } + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5799:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 498, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "5780:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5780:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 504, + "nodeType": "RevertStatement", + "src": "5773:37:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 507, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "5834:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5848:1:2", + "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": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5840:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5840:7:2", + "typeDescriptions": {} + } + }, + "id": 511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5840:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5834:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 521, + "nodeType": "IfStatement", + "src": "5830:86:2", + "trueBody": { + "id": 520, + "nodeType": "Block", + "src": "5852:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5902:1:2", + "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": 515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5894:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5894:7:2", + "typeDescriptions": {} + } + }, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5894:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 513, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5873:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5873:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 519, + "nodeType": "RevertStatement", + "src": "5866:39:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 523, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "5933:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 524, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "5939:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 525, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "5943:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 522, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "5925:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5925:24:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 527, + "nodeType": "ExpressionStatement", + "src": "5925:24:2" + } + ] + }, + "documentation": { + "id": 483, + "nodeType": "StructuredDocumentation", + "src": "5289:362:2", + "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": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "5665:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 485, + "mutability": "mutable", + "name": "from", + "nameLocation": "5683:4:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5675:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5675:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 487, + "mutability": "mutable", + "name": "to", + "nameLocation": "5697:2:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5689:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5689:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "value", + "nameLocation": "5709:5:2", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "5701:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5701:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5674:41:2" + }, + "returnParameters": { + "id": 491, + "nodeType": "ParameterList", + "parameters": [], + "src": "5725:0:2" + }, + "scope": 799, + "src": "5656:300:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 605, + "nodeType": "Block", + "src": "6346:1032:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 539, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6360:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6376:1:2", + "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": 541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6368:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6368:7:2", + "typeDescriptions": {} + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6368:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6360:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 576, + "nodeType": "Block", + "src": "6534:362:2", + "statements": [ + { + "assignments": [ + 551 + ], + "declarations": [ + { + "constant": false, + "id": 551, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "6556:11:2", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "6548:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6548:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 555, + "initialValue": { + "baseExpression": { + "id": 552, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "6570:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 554, + "indexExpression": { + "id": 553, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6580:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6570:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6548:37:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 556, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6603:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 557, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6617:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6603:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 566, + "nodeType": "IfStatement", + "src": "6599:115:2", + "trueBody": { + "id": 565, + "nodeType": "Block", + "src": "6624:90:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 560, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6674:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 561, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6680:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 562, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6693:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 559, + "name": "ERC20InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 159, + "src": "6649:24:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6649:50:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 564, + "nodeType": "RevertStatement", + "src": "6642:57:2" + } + ] + } + }, + { + "id": 575, + "nodeType": "UncheckedBlock", + "src": "6727:159:2", + "statements": [ + { + "expression": { + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 567, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "6834:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 569, + "indexExpression": { + "id": 568, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "6844:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6834:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 570, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 551, + "src": "6852:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 571, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6866:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6852:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6834:37:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "6834:37:2" + } + ] + } + ] + }, + "id": 577, + "nodeType": "IfStatement", + "src": "6356:540:2", + "trueBody": { + "id": 549, + "nodeType": "Block", + "src": "6380:148:2", + "statements": [ + { + "expression": { + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 545, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "6496:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 546, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "6512:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6496:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "6496:21:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 578, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "6910:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6924:1:2", + "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": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6916:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6916:7:2", + "typeDescriptions": {} + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6916:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6910:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 597, + "nodeType": "Block", + "src": "7125:206:2", + "statements": [ + { + "id": 596, + "nodeType": "UncheckedBlock", + "src": "7139:182:2", + "statements": [ + { + "expression": { + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 590, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "7284:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 592, + "indexExpression": { + "id": 591, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "7294:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7284:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 593, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7301:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7284:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 595, + "nodeType": "ExpressionStatement", + "src": "7284:22:2" + } + ] + } + ] + }, + "id": 598, + "nodeType": "IfStatement", + "src": "6906:425:2", + "trueBody": { + "id": 589, + "nodeType": "Block", + "src": "6928:191:2", + "statements": [ + { + "id": 588, + "nodeType": "UncheckedBlock", + "src": "6942:167:2", + "statements": [ + { + "expression": { + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 584, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "7073:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 585, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7089:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7073:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 587, + "nodeType": "ExpressionStatement", + "src": "7073:21:2" + } + ] + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 600, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "7355:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 601, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 534, + "src": "7361:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 602, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7365:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 599, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7346:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7346:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 604, + "nodeType": "EmitStatement", + "src": "7341:30:2" + } + ] + }, + "documentation": { + "id": 530, + "nodeType": "StructuredDocumentation", + "src": "5962:304:2", + "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": 606, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "6280:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "from", + "nameLocation": "6296:4:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6288:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6288:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 534, + "mutability": "mutable", + "name": "to", + "nameLocation": "6310:2:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6302:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 533, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6302:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "value", + "nameLocation": "6322:5:2", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "6314:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6314:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6287:41:2" + }, + "returnParameters": { + "id": 538, + "nodeType": "ParameterList", + "parameters": [], + "src": "6346:0:2" + }, + "scope": 799, + "src": "6271:1107:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "7777:152:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 614, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "7791:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7810:1:2", + "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": 616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7802:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7802:7:2", + "typeDescriptions": {} + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7802:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7791:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 628, + "nodeType": "IfStatement", + "src": "7787:91:2", + "trueBody": { + "id": 627, + "nodeType": "Block", + "src": "7814:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7864:1:2", + "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": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7856:7:2", + "typeDescriptions": {} + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7856:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 620, + "name": "ERC20InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "7835:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7835:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 626, + "nodeType": "RevertStatement", + "src": "7828:39:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7903:1:2", + "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": 631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7895:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7895:7:2", + "typeDescriptions": {} + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7895:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 634, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "7907:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 635, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "7916:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 629, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "7887:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7887:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 637, + "nodeType": "ExpressionStatement", + "src": "7887:35:2" + } + ] + }, + "documentation": { + "id": 607, + "nodeType": "StructuredDocumentation", + "src": "7384:332:2", + "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": 639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "7730:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "account", + "nameLocation": "7744:7:2", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "7736:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7736:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "value", + "nameLocation": "7761:5:2", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "7753:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7753:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7735:32:2" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:2" + }, + "scope": 799, + "src": "7721:208:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 671, + "nodeType": "Block", + "src": "8303:150:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 647, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "8317:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8336:1:2", + "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": 649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8328:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8328:7:2", + "typeDescriptions": {} + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8328:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8317:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 661, + "nodeType": "IfStatement", + "src": "8313:89:2", + "trueBody": { + "id": 660, + "nodeType": "Block", + "src": "8340:62:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8388:1:2", + "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": 655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8380:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8380:7:2", + "typeDescriptions": {} + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8380:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "ERC20InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "8361:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8361:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 659, + "nodeType": "RevertStatement", + "src": "8354:37:2" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 663, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "8419:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8436:1:2", + "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": 665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8428:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8428:7:2", + "typeDescriptions": {} + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8428:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 668, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 644, + "src": "8440:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 662, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "8411:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8411:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 670, + "nodeType": "ExpressionStatement", + "src": "8411:35:2" + } + ] + }, + "documentation": { + "id": 640, + "nodeType": "StructuredDocumentation", + "src": "7935:307:2", + "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": 672, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "8256:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "account", + "nameLocation": "8270:7:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "8262:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8262:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 644, + "mutability": "mutable", + "name": "value", + "nameLocation": "8287:5:2", + "nodeType": "VariableDeclaration", + "scope": 672, + "src": "8279:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8279:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8261:32:2" + }, + "returnParameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [], + "src": "8303:0:2" + }, + "scope": 799, + "src": "8247:206:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 689, + "nodeType": "Block", + "src": "9063:54:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 683, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "9082:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 684, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "9089:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 685, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "9098:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9105:4:2", + "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": 682, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 750, + "src": "9073:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9073:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 688, + "nodeType": "ExpressionStatement", + "src": "9073:37:2" + } + ] + }, + "documentation": { + "id": 673, + "nodeType": "StructuredDocumentation", + "src": "8459:525:2", + "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": 690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "8998:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9015:5:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9007:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9007:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9030:7:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9022:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9022:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "value", + "nameLocation": "9047:5:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "9039:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9039:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9006:47:2" + }, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [], + "src": "9063:0:2" + }, + "scope": 799, + "src": "8989:128:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 749, + "nodeType": "Block", + "src": "10047:334:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 702, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10061:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10078:1:2", + "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": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10070:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10070:7:2", + "typeDescriptions": {} + } + }, + "id": 706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10070:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10061:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 716, + "nodeType": "IfStatement", + "src": "10057:89:2", + "trueBody": { + "id": 715, + "nodeType": "Block", + "src": "10082:64:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10132:1:2", + "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": 710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10124:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10124:7:2", + "typeDescriptions": {} + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10124:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 708, + "name": "ERC20InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "10103:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10103:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 714, + "nodeType": "RevertStatement", + "src": "10096:39:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 717, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10159:7:2", + "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": "10178:1:2", + "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": "10170:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10170:7:2", + "typeDescriptions": {} + } + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10170:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10159:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 731, + "nodeType": "IfStatement", + "src": "10155:90:2", + "trueBody": { + "id": 730, + "nodeType": "Block", + "src": "10182:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10231:1:2", + "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": 725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10223:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10223:7:2", + "typeDescriptions": {} + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10223:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 723, + "name": "ERC20InvalidSpender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "10203:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10203:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 729, + "nodeType": "RevertStatement", + "src": "10196:38:2" + } + ] + } + }, + { + "expression": { + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 732, + "name": "_allowances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "10254:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 735, + "indexExpression": { + "id": 733, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10266:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10254:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 736, + "indexExpression": { + "id": 734, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10273:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10254:27:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 737, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "10284:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10254:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 739, + "nodeType": "ExpressionStatement", + "src": "10254:35:2" + }, + { + "condition": { + "id": 740, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 699, + "src": "10303:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 748, + "nodeType": "IfStatement", + "src": "10299:76:2", + "trueBody": { + "id": 747, + "nodeType": "Block", + "src": "10314:61:2", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 742, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "10342:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 743, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "10349:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 744, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "10358:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 741, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "10333:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10333:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 746, + "nodeType": "EmitStatement", + "src": "10328:36:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "9123:821:2", + "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 ```\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": 750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "9958:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nameLocation": "9975:5:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9967:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9967:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9990:7:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9982:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9982:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "value", + "nameLocation": "10007:5:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "9999:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9999:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "10019:9:2", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "10014:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 698, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10014:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9966:63:2" + }, + "returnParameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [], + "src": "10047:0:2" + }, + "scope": 799, + "src": "9949:432:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "10752:388:2", + "statements": [ + { + "assignments": [ + 761 + ], + "declarations": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "currentAllowance", + "nameLocation": "10770:16:2", + "nodeType": "VariableDeclaration", + "scope": 797, + "src": "10762:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10762:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 766, + "initialValue": { + "arguments": [ + { + "id": 763, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "10799:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 764, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "10806:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 762, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 426, + "src": "10789:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10789:25:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10762:52:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10828:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10853:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10853:7:2", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 768, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10848:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10848:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10862:3:2", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10848:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10828:37:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 796, + "nodeType": "IfStatement", + "src": "10824:310:2", + "trueBody": { + "id": 795, + "nodeType": "Block", + "src": "10867:267:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 774, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10885:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 775, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "10904:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10885:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 784, + "nodeType": "IfStatement", + "src": "10881:130:2", + "trueBody": { + "id": 783, + "nodeType": "Block", + "src": "10911:100:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 778, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "10963:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 779, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "10972:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 780, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "10990:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 777, + "name": "ERC20InsufficientAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 178, + "src": "10936:26:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) pure" + } + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10936:60:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 782, + "nodeType": "RevertStatement", + "src": "10929:67:2" + } + ] + } + }, + { + "id": 794, + "nodeType": "UncheckedBlock", + "src": "11024:100:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 786, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "11061:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 787, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "11068:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 788, + "name": "currentAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "11077:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 789, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "11096:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11077:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11103:5:2", + "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": 785, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 690, + 750 + ], + "referencedDeclaration": 750, + "src": "11052:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (address,address,uint256,bool)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11052:57:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 793, + "nodeType": "ExpressionStatement", + "src": "11052:57:2" + } + ] + } + ] + } + } + ] + }, + "documentation": { + "id": 751, + "nodeType": "StructuredDocumentation", + "src": "10387:271:2", + "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": 798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_spendAllowance", + "nameLocation": "10672:15:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10696:5:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10688:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10688:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 755, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10711:7:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10703:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10703:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 757, + "mutability": "mutable", + "name": "value", + "nameLocation": "10728:5:2", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "10720:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10720:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10687:47:2" + }, + "returnParameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [], + "src": "10752:0:2" + }, + "scope": 799, + "src": "10663:477:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 800, + "src": "1401:9741:2", + "usedErrors": [ + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "105:11038:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 877 + ] + }, + "id": 878, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 801, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 802, + "nodeType": "StructuredDocumentation", + "src": "132:70:3", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 877, + "linearizedBaseContracts": [ + 877 + ], + "name": "IERC20", + "nameLocation": "213:6:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 803, + "nodeType": "StructuredDocumentation", + "src": "226:158:3", + "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": 811, + "name": "Transfer", + "nameLocation": "395:8:3", + "nodeType": "EventDefinition", + "parameters": { + "id": 810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 805, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "420:4:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "404:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "404:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 807, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "442:2:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "426:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "426:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 809, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "454:5:3", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "446:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "446:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "403:57:3" + }, + "src": "389:72:3" + }, + { + "anonymous": false, + "documentation": { + "id": 812, + "nodeType": "StructuredDocumentation", + "src": "467:148:3", + "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": 820, + "name": "Approval", + "nameLocation": "626:8:3", + "nodeType": "EventDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "651:5:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "635:21:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "635:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 816, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "674:7:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "658:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "658:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 818, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "691:5:3", + "nodeType": "VariableDeclaration", + "scope": 820, + "src": "683:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "683:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "634:63:3" + }, + "src": "620:78:3" + }, + { + "documentation": { + "id": 821, + "nodeType": "StructuredDocumentation", + "src": "704:65:3", + "text": " @dev Returns the value of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 826, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "783:11:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [], + "src": "794:2:3" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 826, + "src": "820:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "820:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "819:9:3" + }, + "scope": 877, + "src": "774:55:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 827, + "nodeType": "StructuredDocumentation", + "src": "835:71:3", + "text": " @dev Returns the value of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 834, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "920:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "account", + "nameLocation": "938:7:3", + "nodeType": "VariableDeclaration", + "scope": 834, + "src": "930:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "930:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "929:17:3" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 832, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 834, + "src": "970:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "969:9:3" + }, + "scope": 877, + "src": "911:68:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 835, + "nodeType": "StructuredDocumentation", + "src": "985:213:3", + "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": 844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "1212:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 837, + "mutability": "mutable", + "name": "to", + "nameLocation": "1229:2:3", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1221:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1221:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "value", + "nameLocation": "1241:5:3", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1233:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1233:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1220:27:3" + }, + "returnParameters": { + "id": 843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 842, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 844, + "src": "1266:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 841, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1266:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1265:6:3" + }, + "scope": 877, + "src": "1203:69:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 845, + "nodeType": "StructuredDocumentation", + "src": "1278:264:3", + "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": 854, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "1556:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 847, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1574:5:3", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1566:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1589:7:3", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1581:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1581:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1565:32:3" + }, + "returnParameters": { + "id": 853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 852, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 854, + "src": "1621:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1621:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1620:9:3" + }, + "scope": 877, + "src": "1547:83:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 855, + "nodeType": "StructuredDocumentation", + "src": "1636:667:3", + "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": 864, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2317:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 857, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2333:7:3", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2325:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2325:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "value", + "nameLocation": "2350:5:3", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2342:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2342:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2324:32:3" + }, + "returnParameters": { + "id": 863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "2375:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 861, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2375:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2374:6:3" + }, + "scope": 877, + "src": "2308:73:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 865, + "nodeType": "StructuredDocumentation", + "src": "2387:297:3", + "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": 876, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "2698:12:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 867, + "mutability": "mutable", + "name": "from", + "nameLocation": "2719:4:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2711:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2711:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 869, + "mutability": "mutable", + "name": "to", + "nameLocation": "2733:2:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2725:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2725:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "mutability": "mutable", + "name": "value", + "nameLocation": "2745:5:3", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2737:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2737:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2710:41:3" + }, + "returnParameters": { + "id": 875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 874, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 876, + "src": "2770:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2770:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2769:6:3" + }, + "scope": 877, + "src": "2689:87:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 878, + "src": "203:2575:3", + "usedErrors": [], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "106:2673:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "exportedSymbols": { + "IERC20": [ + 877 + ], + "IERC20Metadata": [ + 903 + ] + }, + "id": 904, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 879, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "125:24:4" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "../IERC20.sol", + "id": 881, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 904, + "sourceUnit": 878, + "src": "151:37:4", + "symbolAliases": [ + { + "foreign": { + "id": 880, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 877, + "src": "159:6:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 883, + "name": "IERC20", + "nameLocations": [ + "305:6:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "305:6:4" + }, + "id": 884, + "nodeType": "InheritanceSpecifier", + "src": "305:6:4" + } + ], + "canonicalName": "IERC20Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 882, + "nodeType": "StructuredDocumentation", + "src": "190:86:4", + "text": " @dev Interface for the optional metadata functions from the ERC20 standard." + }, + "fullyImplemented": false, + "id": 903, + "linearizedBaseContracts": [ + 903, + 877 + ], + "name": "IERC20Metadata", + "nameLocation": "287:14:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 885, + "nodeType": "StructuredDocumentation", + "src": "318:54:4", + "text": " @dev Returns the name of the token." + }, + "functionSelector": "06fdde03", + "id": 890, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "386:4:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 886, + "nodeType": "ParameterList", + "parameters": [], + "src": "390:2:4" + }, + "returnParameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 888, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 890, + "src": "416:13:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 887, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "416:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "415:15:4" + }, + "scope": 903, + "src": "377:54:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 891, + "nodeType": "StructuredDocumentation", + "src": "437:56:4", + "text": " @dev Returns the symbol of the token." + }, + "functionSelector": "95d89b41", + "id": 896, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "507:6:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [], + "src": "513:2:4" + }, + "returnParameters": { + "id": 895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 896, + "src": "539:13:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 893, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "539:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "538:15:4" + }, + "scope": 903, + "src": "498:56:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 897, + "nodeType": "StructuredDocumentation", + "src": "560:65:4", + "text": " @dev Returns the decimals places of the token." + }, + "functionSelector": "313ce567", + "id": 902, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "639:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 898, + "nodeType": "ParameterList", + "parameters": [], + "src": "647:2:4" + }, + "returnParameters": { + "id": 901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 900, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 902, + "src": "673:5:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 899, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "673:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "672:7:4" + }, + "scope": 903, + "src": "630:50:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 904, + "src": "277:405:4", + "usedErrors": [], + "usedEvents": [ + 811, + 820 + ] + } + ], + "src": "125:558:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 933 + ] + }, + "id": 934, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 905, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:5" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 906, + "nodeType": "StructuredDocumentation", + "src": "127:496:5", + "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": 933, + "linearizedBaseContracts": [ + 933 + ], + "name": "Context", + "nameLocation": "642:7:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 914, + "nodeType": "Block", + "src": "718:34:5", + "statements": [ + { + "expression": { + "expression": { + "id": 911, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 910, + "id": 913, + "nodeType": "Return", + "src": "728:17:5" + } + ] + }, + "id": 915, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 907, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:5" + }, + "returnParameters": { + "id": 910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 909, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 915, + "src": "709:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:5" + }, + "scope": 933, + "src": "656:96:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "825:32:5", + "statements": [ + { + "expression": { + "expression": { + "id": 920, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:5", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 919, + "id": 922, + "nodeType": "Return", + "src": "835:15:5" + } + ] + }, + "id": 924, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:5" + }, + "returnParameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 918, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "809:14:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 917, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:5" + }, + "scope": 933, + "src": "758:99:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 931, + "nodeType": "Block", + "src": "935:25:5", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 928, + "id": 930, + "nodeType": "Return", + "src": "945:8:5" + } + ] + }, + "id": 932, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 925, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:5" + }, + "returnParameters": { + "id": 928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "926:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:5" + }, + "scope": 933, + "src": "863:97:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 934, + "src": "624:338:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:5" + }, + "id": 5 + }, + "contracts/Oracle/Oracle.sol": { + "ast": { + "absolutePath": "contracts/Oracle/Oracle.sol", + "exportedSymbols": { + "Oracle": [ + 1001 + ] + }, + "id": 1002, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 935, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Oracle", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1001, + "linearizedBaseContracts": [ + 1001 + ], + "name": "Oracle", + "nameLocation": "69:6:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Oracle.OracleData", + "id": 940, + "members": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "value", + "nameLocation": "119:5:6", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "112:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 936, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "112:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "143:11:6", + "nodeType": "VariableDeclaration", + "scope": 940, + "src": "135:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "135:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "OracleData", + "nameLocation": "90:10:6", + "nodeType": "StructDefinition", + "scope": 1001, + "src": "83:79:6", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ed5ae681", + "id": 945, + "mutability": "mutable", + "name": "oracleValues", + "nameLocation": "207:12:6", + "nodeType": "VariableDeclaration", + "scope": 1001, + "src": "170:49:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_OracleData_$940_storage_$", + "typeString": "mapping(string => struct Oracle.OracleData)" + }, + "typeName": { + "id": 944, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 941, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "178:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "170:29:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_OracleData_$940_storage_$", + "typeString": "mapping(string => struct Oracle.OracleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 943, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 942, + "name": "OracleData", + "nameLocations": [ + "188:10:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 940, + "src": "188:10:6" + }, + "referencedDeclaration": 940, + "src": "188:10:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OracleData_$940_storage_ptr", + "typeString": "struct Oracle.OracleData" + } + } + }, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "117a8770dd8b7109c2e7e3cee3bb8634f305ba8342bdcd2e8da366a169a267d2", + "id": 953, + "name": "ValueSet", + "nameLocation": "234:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 947, + "indexed": false, + "mutability": "mutable", + "name": "key", + "nameLocation": "250:3:6", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "243:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 946, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "243:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 949, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "262:5:6", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "255:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 948, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "255:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 951, + "indexed": false, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "277:11:6", + "nodeType": "VariableDeclaration", + "scope": 953, + "src": "269:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "269:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "242:47:6" + }, + "src": "228:62:6" + }, + { + "body": { + "id": 999, + "nodeType": "Block", + "src": "364:252:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 963, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "389:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "383:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 961, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "383:5:6", + "typeDescriptions": {} + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "383:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "394:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "383:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "403:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "383:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4b65792063616e6e6f7420626520656d707479", + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "406:21:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b", + "typeString": "literal_string \"Key cannot be empty\"" + }, + "value": "Key cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b", + "typeString": "literal_string \"Key cannot be empty\"" + } + ], + "id": 960, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "375:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 970, + "nodeType": "ExpressionStatement", + "src": "375:53:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 974, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "453:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "447:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 972, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "447:5:6", + "typeDescriptions": {} + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "447:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "460:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "447:19:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "469:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "447:23:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "56616c75652063616e6e6f7420626520656d707479", + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:23:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3", + "typeString": "literal_string \"Value cannot be empty\"" + }, + "value": "Value cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3", + "typeString": "literal_string \"Value cannot be empty\"" + } + ], + "id": 971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "439:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "439:57:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 981, + "nodeType": "ExpressionStatement", + "src": "439:57:6" + }, + { + "expression": { + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 982, + "name": "oracleValues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "507:12:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_OracleData_$940_storage_$", + "typeString": "mapping(string memory => struct Oracle.OracleData storage ref)" + } + }, + "id": 984, + "indexExpression": { + "id": 983, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "520:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "507:17:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OracleData_$940_storage", + "typeString": "struct Oracle.OracleData storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 986, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "538:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 987, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "545:5:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "551:6:6", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "545:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 985, + "name": "OracleData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 940, + "src": "527:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_OracleData_$940_storage_ptr_$", + "typeString": "type(struct Oracle.OracleData storage pointer)" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "527:31:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OracleData_$940_memory_ptr", + "typeString": "struct Oracle.OracleData memory" + } + }, + "src": "507:51:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OracleData_$940_storage", + "typeString": "struct Oracle.OracleData storage ref" + } + }, + "id": 991, + "nodeType": "ExpressionStatement", + "src": "507:51:6" + }, + { + "eventCall": { + "arguments": [ + { + "id": 993, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "583:3:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 994, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "588:5:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 995, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "595:5:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "601:6:6", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "595:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 992, + "name": "ValueSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "574:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (string memory,string memory,uint256)" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "574:34:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 998, + "nodeType": "EmitStatement", + "src": "569:39:6" + } + ] + }, + "functionSelector": "ec86cfad", + "id": 1000, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setValue", + "nameLocation": "307:8:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 955, + "mutability": "mutable", + "name": "key", + "nameLocation": "330:3:6", + "nodeType": "VariableDeclaration", + "scope": 1000, + "src": "316:17:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "316:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 957, + "mutability": "mutable", + "name": "value", + "nameLocation": "349:5:6", + "nodeType": "VariableDeclaration", + "scope": 1000, + "src": "335:19:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 956, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "335:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "315:40:6" + }, + "returnParameters": { + "id": 959, + "nodeType": "ParameterList", + "parameters": [], + "src": "364:0:6" + }, + "scope": 1001, + "src": "298:318:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1002, + "src": "60:559:6", + "usedErrors": [], + "usedEvents": [ + 953 + ] + } + ], + "src": "33:586:6" + }, + "id": 6 + }, + "contracts/SwapOracle.sol": { + "ast": { + "absolutePath": "contracts/SwapOracle.sol", + "exportedSymbols": {}, + "id": 1003, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [], + "src": "3967:0:7" + }, + "id": 7 + }, + "contracts/ThreeSwap.sol": { + "ast": { + "absolutePath": "contracts/ThreeSwap.sol", + "exportedSymbols": { + "IERC20": [ + 877 + ], + "IOracle": [ + 1015 + ], + "ThreeSwap": [ + 1371 + ] + }, + "id": 1372, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1004, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 1005, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1372, + "sourceUnit": 878, + "src": "60:56:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 1015, + "linearizedBaseContracts": [ + 1015 + ], + "name": "IOracle", + "nameLocation": "130:7:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "ed5ae681", + "id": 1014, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracleValues", + "nameLocation": "154:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1007, + "mutability": "mutable", + "name": "key", + "nameLocation": "181:3:8", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "167:17:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1006, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "167:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "166:19:8" + }, + "returnParameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1010, + "mutability": "mutable", + "name": "value", + "nameLocation": "223:5:8", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "209:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1009, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "209:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1012, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "238:11:8", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "230:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "230:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "208:42:8" + }, + "scope": 1015, + "src": "145:106:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1372, + "src": "120:134:8", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ThreeSwap", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1371, + "linearizedBaseContracts": [ + 1371 + ], + "name": "ThreeSwap", + "nameLocation": "267:9:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ThreeSwap.TokenType", + "id": 1019, + "members": [ + { + "id": 1016, + "name": "WBTC", + "nameLocation": "301:4:8", + "nodeType": "EnumValue", + "src": "301:4:8" + }, + { + "id": 1017, + "name": "WETH", + "nameLocation": "307:4:8", + "nodeType": "EnumValue", + "src": "307:4:8" + }, + { + "id": 1018, + "name": "USDC", + "nameLocation": "313:4:8", + "nodeType": "EnumValue", + "src": "313:4:8" + } + ], + "name": "TokenType", + "nameLocation": "289:9:8", + "nodeType": "EnumDefinition", + "src": "284:35:8" + }, + { + "constant": false, + "functionSelector": "4f64b2be", + "id": 1024, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "344:6:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "327:23:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3]" + }, + "typeName": { + "baseType": { + "id": 1021, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1020, + "name": "IERC20", + "nameLocations": [ + "327:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "327:6:8" + }, + "referencedDeclaration": 877, + "src": "327:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1023, + "length": { + "hexValue": "33", + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "334:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "327:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage_ptr", + "typeString": "contract IERC20[3]" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7dc0d1d0", + "id": 1027, + "mutability": "mutable", + "name": "oracle", + "nameLocation": "372:6:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "357:21:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + }, + "typeName": { + "id": 1026, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1025, + "name": "IOracle", + "nameLocations": [ + "357:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1015, + "src": "357:7:8" + }, + "referencedDeclaration": 1015, + "src": "357:7:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a562f457", + "id": 1031, + "mutability": "mutable", + "name": "oracleKeys", + "nameLocation": "402:10:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "385:27:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage", + "typeString": "string[2]" + }, + "typeName": { + "baseType": { + "id": 1028, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "385:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1030, + "length": { + "hexValue": "32", + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "392:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "385:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "2e0f2625", + "id": 1034, + "mutability": "constant", + "name": "DECIMALS", + "nameLocation": "443:8:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "419:37:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138", + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "454:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "71814807", + "id": 1041, + "mutability": "constant", + "name": "FIXED_USDC_PRICE", + "nameLocation": "487:16:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "463:59:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "463:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "506:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "510:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 1038, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "514:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "510:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "506:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 1102, + "nodeType": "Block", + "src": "602:257:8", + "statements": [ + { + "expression": { + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1056, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "613:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3] storage ref" + } + }, + "id": 1062, + "indexExpression": { + "arguments": [ + { + "expression": { + "id": 1059, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "628:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "638:4:8", + "memberName": "WBTC", + "nodeType": "MemberAccess", + "referencedDeclaration": 1016, + "src": "628:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "620:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "620:7:8", + "typeDescriptions": {} + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "620:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "613:31:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1063, + "name": "_wbtc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "647:5:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "src": "613:39:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1065, + "nodeType": "ExpressionStatement", + "src": "613:39:8" + }, + { + "expression": { + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1066, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "663:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3] storage ref" + } + }, + "id": 1072, + "indexExpression": { + "arguments": [ + { + "expression": { + "id": 1069, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "678:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "688:4:8", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 1017, + "src": "678:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "670:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1067, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:8", + "typeDescriptions": {} + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "670:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "663:31:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1073, + "name": "_weth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "697:5:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "src": "663:39:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1075, + "nodeType": "ExpressionStatement", + "src": "663:39:8" + }, + { + "expression": { + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1076, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "713:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3] storage ref" + } + }, + "id": 1082, + "indexExpression": { + "arguments": [ + { + "expression": { + "id": 1079, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "728:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "738:4:8", + "memberName": "USDC", + "nodeType": "MemberAccess", + "referencedDeclaration": 1018, + "src": "728:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "720:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "720:7:8", + "typeDescriptions": {} + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "720:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "713:31:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1083, + "name": "_usdc", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "747:5:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "src": "713:39:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1085, + "nodeType": "ExpressionStatement", + "src": "713:39:8" + }, + { + "expression": { + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1086, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "763:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1087, + "name": "_oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1053, + "src": "772:7:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "src": "763:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "id": 1089, + "nodeType": "ExpressionStatement", + "src": "763:16:8" + }, + { + "expression": { + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1090, + "name": "oracleKeys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "790:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage", + "typeString": "string storage ref[2] storage ref" + } + }, + "id": 1092, + "indexExpression": { + "hexValue": "30", + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "801:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "790:13:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "4254432f555344", + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "806:9:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ee62665949c883f9e0f6f002eac32e00bd59dfe6c34e92a91c37d6a8322d6489", + "typeString": "literal_string \"BTC/USD\"" + }, + "value": "BTC/USD" + }, + "src": "790:25:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1095, + "nodeType": "ExpressionStatement", + "src": "790:25:8" + }, + { + "expression": { + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1096, + "name": "oracleKeys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "826:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage", + "typeString": "string storage ref[2] storage ref" + } + }, + "id": 1098, + "indexExpression": { + "hexValue": "31", + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "837:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "826:13:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "4554482f555344", + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "842:9:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0b43555ace6b39aae1b894097d0a9fc17f504c62fea598fa206cc6f5088e6e45", + "typeString": "literal_string \"ETH/USD\"" + }, + "value": "ETH/USD" + }, + "src": "826:25:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "826:25:8" + } + ] + }, + "id": 1103, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1044, + "mutability": "mutable", + "name": "_wbtc", + "nameLocation": "550:5:8", + "nodeType": "VariableDeclaration", + "scope": 1103, + "src": "543:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1043, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1042, + "name": "IERC20", + "nameLocations": [ + "543:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "543:6:8" + }, + "referencedDeclaration": 877, + "src": "543:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1047, + "mutability": "mutable", + "name": "_weth", + "nameLocation": "564:5:8", + "nodeType": "VariableDeclaration", + "scope": 1103, + "src": "557:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1046, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1045, + "name": "IERC20", + "nameLocations": [ + "557:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "557:6:8" + }, + "referencedDeclaration": 877, + "src": "557:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1050, + "mutability": "mutable", + "name": "_usdc", + "nameLocation": "578:5:8", + "nodeType": "VariableDeclaration", + "scope": 1103, + "src": "571:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 1049, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1048, + "name": "IERC20", + "nameLocations": [ + "571:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 877, + "src": "571:6:8" + }, + "referencedDeclaration": 877, + "src": "571:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1053, + "mutability": "mutable", + "name": "_oracle", + "nameLocation": "593:7:8", + "nodeType": "VariableDeclaration", + "scope": 1103, + "src": "585:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + }, + "typeName": { + "id": 1052, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1051, + "name": "IOracle", + "nameLocations": [ + "585:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1015, + "src": "585:7:8" + }, + "referencedDeclaration": 1015, + "src": "585:7:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "visibility": "internal" + } + ], + "src": "542:59:8" + }, + "returnParameters": { + "id": 1055, + "nodeType": "ParameterList", + "parameters": [], + "src": "602:0:8" + }, + "scope": 1371, + "src": "531:328:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1162, + "nodeType": "Block", + "src": "949:512:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1111, + "name": "tokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "964:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1112, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "977:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "987:4:8", + "memberName": "USDC", + "nodeType": "MemberAccess", + "referencedDeclaration": 1018, + "src": "977:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "src": "964:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1118, + "name": "tokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "1053:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1119, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "1066:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1076:4:8", + "memberName": "WBTC", + "nodeType": "MemberAccess", + "referencedDeclaration": 1016, + "src": "1066:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "src": "1053:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1136, + "name": "tokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "1226:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1137, + "name": "TokenType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1019, + "src": "1239:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_TokenType_$1019_$", + "typeString": "type(enum ThreeSwap.TokenType)" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1249:4:8", + "memberName": "WETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 1017, + "src": "1239:14:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "src": "1226:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1158, + "nodeType": "Block", + "src": "1395:59:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "556e737570706f7274656420746f6b656e2074797065", + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1417:24:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4", + "typeString": "literal_string \"Unsupported token type\"" + }, + "value": "Unsupported token type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4", + "typeString": "literal_string \"Unsupported token type\"" + } + ], + "id": 1154, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1410:6:8", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1410:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1157, + "nodeType": "ExpressionStatement", + "src": "1410:32:8" + } + ] + }, + "id": 1159, + "nodeType": "IfStatement", + "src": "1222:232:8", + "trueBody": { + "id": 1153, + "nodeType": "Block", + "src": "1255:134:8", + "statements": [ + { + "assignments": [ + 1141, + null + ], + "declarations": [ + { + "constant": false, + "id": 1141, + "mutability": "mutable", + "name": "priceStr", + "nameLocation": "1285:8:8", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "1271:22:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1140, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1271:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1148, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1144, + "name": "oracleKeys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "1318:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage", + "typeString": "string storage ref[2] storage ref" + } + }, + "id": 1146, + "indexExpression": { + "hexValue": "31", + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1329:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1318:13:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "expression": { + "id": 1142, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "1298:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1305:12:8", + "memberName": "oracleValues", + "nodeType": "MemberAccess", + "referencedDeclaration": 1014, + "src": "1298:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$_t_uint256_$", + "typeString": "function (string memory) view external returns (string memory,uint256)" + } + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1298:34:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_string_memory_ptr_$_t_uint256_$", + "typeString": "tuple(string memory,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1270:62:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1150, + "name": "priceStr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "1368:8:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1149, + "name": "_stringToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "1354:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) pure returns (uint256)" + } + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1354:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1110, + "id": 1152, + "nodeType": "Return", + "src": "1347:30:8" + } + ] + } + }, + "id": 1160, + "nodeType": "IfStatement", + "src": "1049:405:8", + "trueBody": { + "id": 1135, + "nodeType": "Block", + "src": "1082:134:8", + "statements": [ + { + "assignments": [ + 1123, + null + ], + "declarations": [ + { + "constant": false, + "id": 1123, + "mutability": "mutable", + "name": "priceStr", + "nameLocation": "1112:8:8", + "nodeType": "VariableDeclaration", + "scope": 1135, + "src": "1098:22:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1122, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1098:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1130, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 1126, + "name": "oracleKeys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "1145:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage", + "typeString": "string storage ref[2] storage ref" + } + }, + "id": 1128, + "indexExpression": { + "hexValue": "30", + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1156:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1145:13:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "expression": { + "id": 1124, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "1125:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1015", + "typeString": "contract IOracle" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1132:12:8", + "memberName": "oracleValues", + "nodeType": "MemberAccess", + "referencedDeclaration": 1014, + "src": "1125:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$_t_uint256_$", + "typeString": "function (string memory) view external returns (string memory,uint256)" + } + }, + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1125:34:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_string_memory_ptr_$_t_uint256_$", + "typeString": "tuple(string memory,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1097:62:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1132, + "name": "priceStr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "1195:8:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1131, + "name": "_stringToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "1181:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) pure returns (uint256)" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1181:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1110, + "id": 1134, + "nodeType": "Return", + "src": "1174:30:8" + } + ] + } + }, + "id": 1161, + "nodeType": "IfStatement", + "src": "960:494:8", + "trueBody": { + "id": 1117, + "nodeType": "Block", + "src": "993:50:8", + "statements": [ + { + "expression": { + "id": 1115, + "name": "FIXED_USDC_PRICE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "1015:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1110, + "id": 1116, + "nodeType": "Return", + "src": "1008:23:8" + } + ] + } + } + ] + }, + "id": 1163, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getPriceFromOracle", + "nameLocation": "876:19:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1106, + "mutability": "mutable", + "name": "tokenType", + "nameLocation": "906:9:8", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "896:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "typeName": { + "id": 1105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1104, + "name": "TokenType", + "nameLocations": [ + "896:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1019, + "src": "896:9:8" + }, + "referencedDeclaration": 1019, + "src": "896:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "visibility": "internal" + } + ], + "src": "895:21:8" + }, + "returnParameters": { + "id": 1110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1163, + "src": "940:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "940:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:8" + }, + "scope": 1371, + "src": "867:594:8", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1287, + "nodeType": "Block", + "src": "1541:827:8", + "statements": [ + { + "assignments": [ + 1171 + ], + "declarations": [ + { + "constant": false, + "id": 1171, + "mutability": "mutable", + "name": "b", + "nameLocation": "1565:1:8", + "nodeType": "VariableDeclaration", + "scope": 1287, + "src": "1552:14:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1170, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1552:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1176, + "initialValue": { + "arguments": [ + { + "id": 1174, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "1575:1:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1569:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1172, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1569:5:8", + "typeDescriptions": {} + } + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1569:8:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1552:25:8" + }, + { + "assignments": [ + 1178 + ], + "declarations": [ + { + "constant": false, + "id": 1178, + "mutability": "mutable", + "name": "result", + "nameLocation": "1596:6:8", + "nodeType": "VariableDeclaration", + "scope": 1287, + "src": "1588:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1588:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1180, + "initialValue": { + "hexValue": "30", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1605:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1588:18:8" + }, + { + "assignments": [ + 1182 + ], + "declarations": [ + { + "constant": false, + "id": 1182, + "mutability": "mutable", + "name": "decimalPoint", + "nameLocation": "1622:12:8", + "nodeType": "VariableDeclaration", + "scope": 1287, + "src": "1617:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1181, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1617:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1184, + "initialValue": { + "hexValue": "66616c7365", + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1637:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1617:25:8" + }, + { + "assignments": [ + 1186 + ], + "declarations": [ + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "decimalPlaces", + "nameLocation": "1661:13:8", + "nodeType": "VariableDeclaration", + "scope": 1287, + "src": "1653:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1653:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1188, + "initialValue": { + "hexValue": "30", + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1653:25:8" + }, + { + "body": { + "id": 1249, + "nodeType": "Block", + "src": "1730:317:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1200, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "1749:1:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1202, + "indexExpression": { + "id": 1201, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1751:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1749:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30783330", + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1757:4:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "0x30" + }, + "src": "1749:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1205, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "1765:1:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1207, + "indexExpression": { + "id": 1206, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1767:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1765:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30783339", + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1773:4:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_57_by_1", + "typeString": "int_const 57" + }, + "value": "0x39" + }, + "src": "1765:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1749:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1237, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "1968:1:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1239, + "indexExpression": { + "id": 1238, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1970:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1968:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783245", + "id": 1240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1976:4:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_46_by_1", + "typeString": "int_const 46" + }, + "value": "0x2E" + }, + "src": "1968:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1247, + "nodeType": "IfStatement", + "src": "1964:72:8", + "trueBody": { + "id": 1246, + "nodeType": "Block", + "src": "1982:54:8", + "statements": [ + { + "expression": { + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1242, + "name": "decimalPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "2001:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2016:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2001:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1245, + "nodeType": "ExpressionStatement", + "src": "2001:19:8" + } + ] + } + }, + "id": 1248, + "nodeType": "IfStatement", + "src": "1745:291:8", + "trueBody": { + "id": 1236, + "nodeType": "Block", + "src": "1779:179:8", + "statements": [ + { + "expression": { + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1211, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "1798:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1212, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "1807:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3130", + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1816:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1807:11:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "baseExpression": { + "id": 1219, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "1836:1:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1221, + "indexExpression": { + "id": 1220, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1838:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1836:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1830:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 1217, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1830:5:8", + "typeDescriptions": {} + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1830:11:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1822:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1822:7:8", + "typeDescriptions": {} + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1822:20:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3438", + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1845:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "src": "1822:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1226, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1821:27:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1807:41:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1798:50:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1229, + "nodeType": "ExpressionStatement", + "src": "1798:50:8" + }, + { + "condition": { + "id": 1230, + "name": "decimalPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "1871:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1235, + "nodeType": "IfStatement", + "src": "1867:76:8", + "trueBody": { + "id": 1234, + "nodeType": "Block", + "src": "1885:58:8", + "statements": [ + { + "expression": { + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1908:15:8", + "subExpression": { + "id": 1231, + "name": "decimalPlaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "1908:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1233, + "nodeType": "ExpressionStatement", + "src": "1908:15:8" + } + ] + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1193, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1711:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1194, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1171, + "src": "1715:1:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1717:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1715:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1711:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1250, + "initializationExpression": { + "assignments": [ + 1190 + ], + "declarations": [ + { + "constant": false, + "id": 1190, + "mutability": "mutable", + "name": "i", + "nameLocation": "1704:1:8", + "nodeType": "VariableDeclaration", + "scope": 1250, + "src": "1696:9:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1696:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1192, + "initialValue": { + "hexValue": "30", + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1708:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1696:13:8" + }, + "loopExpression": { + "expression": { + "id": 1198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1725:3:8", + "subExpression": { + "id": 1197, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1725:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1199, + "nodeType": "ExpressionStatement", + "src": "1725:3:8" + }, + "nodeType": "ForStatement", + "src": "1691:356:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1251, + "name": "decimalPlaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "2119:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1252, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2135:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2119:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1267, + "name": "decimalPlaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "2232:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1268, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2248:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2232:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1283, + "nodeType": "IfStatement", + "src": "2228:107:8", + "trueBody": { + "id": 1282, + "nodeType": "Block", + "src": "2258:77:8", + "statements": [ + { + "expression": { + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1270, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "2273:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1271, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "2282:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2292:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1273, + "name": "decimalPlaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "2297:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1274, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2313:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2297:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1276, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2296:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2292:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1278, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2291:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2282:41:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2273:50:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1281, + "nodeType": "ExpressionStatement", + "src": "2273:50:8" + } + ] + } + }, + "id": 1284, + "nodeType": "IfStatement", + "src": "2115:220:8", + "trueBody": { + "id": 1266, + "nodeType": "Block", + "src": "2145:77:8", + "statements": [ + { + "expression": { + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1254, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "2160:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1255, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "2169:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2179:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1257, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2184:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1258, + "name": "decimalPlaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "2195:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2184:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1260, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2183:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2179:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1262, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2178:32:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2169:41:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2160:50:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1265, + "nodeType": "ExpressionStatement", + "src": "2160:50:8" + } + ] + } + }, + { + "expression": { + "id": 1285, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "2354:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1169, + "id": 1286, + "nodeType": "Return", + "src": "2347:13:8" + } + ] + }, + "id": 1288, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_stringToUint", + "nameLocation": "1478:13:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1165, + "mutability": "mutable", + "name": "s", + "nameLocation": "1506:1:8", + "nodeType": "VariableDeclaration", + "scope": 1288, + "src": "1492:15:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1164, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1492:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1491:17:8" + }, + "returnParameters": { + "id": 1169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1288, + "src": "1532:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1532:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1531:9:8" + }, + "scope": 1371, + "src": "1469:899:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1369, + "nodeType": "Block", + "src": "2463:548:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1302, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1293, + "src": "2482:4:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1303, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "2490:2:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "src": "2482:10:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "43616e6e6f742073776170207468652073616d6520746f6b656e", + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2494:28:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23", + "typeString": "literal_string \"Cannot swap the same token\"" + }, + "value": "Cannot swap the same token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23", + "typeString": "literal_string \"Cannot swap the same token\"" + } + ], + "id": 1301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2474:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2474:49:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1307, + "nodeType": "ExpressionStatement", + "src": "2474:49:8" + }, + { + "assignments": [ + 1309 + ], + "declarations": [ + { + "constant": false, + "id": 1309, + "mutability": "mutable", + "name": "priceFrom", + "nameLocation": "2552:9:8", + "nodeType": "VariableDeclaration", + "scope": 1369, + "src": "2544:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1313, + "initialValue": { + "arguments": [ + { + "id": 1311, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1293, + "src": "2584:4:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1310, + "name": "_getPriceFromOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1163, + "src": "2564:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_enum$_TokenType_$1019_$returns$_t_uint256_$", + "typeString": "function (enum ThreeSwap.TokenType) view returns (uint256)" + } + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2564:25:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2544:45:8" + }, + { + "assignments": [ + 1315 + ], + "declarations": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "priceTo", + "nameLocation": "2608:7:8", + "nodeType": "VariableDeclaration", + "scope": 1369, + "src": "2600:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2600:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1319, + "initialValue": { + "arguments": [ + { + "id": 1317, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "2638:2:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1316, + "name": "_getPriceFromOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1163, + "src": "2618:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_enum$_TokenType_$1019_$returns$_t_uint256_$", + "typeString": "function (enum ThreeSwap.TokenType) view returns (uint256)" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2618:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2600:41:8" + }, + { + "assignments": [ + 1321 + ], + "declarations": [ + { + "constant": false, + "id": 1321, + "mutability": "mutable", + "name": "amountTo", + "nameLocation": "2708:8:8", + "nodeType": "VariableDeclaration", + "scope": 1369, + "src": "2700:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2700:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1332, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1322, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1290, + "src": "2720:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1323, + "name": "priceFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1309, + "src": "2729:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2720:18:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2741:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 1326, + "name": "DECIMALS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "2745:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2741:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2720:33:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1329, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2719:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1330, + "name": "priceTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "2757:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2719:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2700:64:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1341, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2820:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2824:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2820:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1345, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2840:4:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ThreeSwap_$1371", + "typeString": "contract ThreeSwap" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ThreeSwap_$1371", + "typeString": "contract ThreeSwap" + } + ], + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2832:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2832:7:8", + "typeDescriptions": {} + } + }, + "id": 1346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2832:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1347, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1290, + "src": "2847:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1334, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "2785:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3] storage ref" + } + }, + "id": 1339, + "indexExpression": { + "arguments": [ + { + "id": 1337, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1293, + "src": "2800:4:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2792:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2792:7:8", + "typeDescriptions": {} + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2792:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2785:21:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2807:12:8", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 876, + "src": "2785:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2785:69:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546f6b656e207472616e73666572206661696c6564", + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2856:23:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + }, + "value": "Token transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + } + ], + "id": 1333, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2777:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2777:103:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1351, + "nodeType": "ExpressionStatement", + "src": "2777:103:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1360, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2928:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2932:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2928:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1362, + "name": "amountTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "2940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 1353, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "2899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$877_$3_storage", + "typeString": "contract IERC20[3] storage ref" + } + }, + "id": 1358, + "indexExpression": { + "arguments": [ + { + "id": 1356, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1296, + "src": "2914:2:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + ], + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2906:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2906:7:8", + "typeDescriptions": {} + } + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2906:11:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2899:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$877", + "typeString": "contract IERC20" + } + }, + "id": 1359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2919:8:8", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 844, + "src": "2899:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2899:50:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546f6b656e207472616e73666572206661696c6564", + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2951:23:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + }, + "value": "Token transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + } + ], + "id": 1352, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2891:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2891:84:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1366, + "nodeType": "ExpressionStatement", + "src": "2891:84:8" + }, + { + "expression": { + "id": 1367, + "name": "amountTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "2995:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1300, + "id": 1368, + "nodeType": "Return", + "src": "2988:15:8" + } + ] + }, + "functionSelector": "968d5a25", + "id": 1370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "swap", + "nameLocation": "2385:4:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1290, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2398:6:8", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "2390:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2390:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1293, + "mutability": "mutable", + "name": "from", + "nameLocation": "2416:4:8", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "2406:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "typeName": { + "id": 1292, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1291, + "name": "TokenType", + "nameLocations": [ + "2406:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1019, + "src": "2406:9:8" + }, + "referencedDeclaration": 1019, + "src": "2406:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1296, + "mutability": "mutable", + "name": "to", + "nameLocation": "2432:2:8", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "2422:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + }, + "typeName": { + "id": 1295, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1294, + "name": "TokenType", + "nameLocations": [ + "2422:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1019, + "src": "2422:9:8" + }, + "referencedDeclaration": 1019, + "src": "2422:9:8", + "typeDescriptions": { + "typeIdentifier": "t_enum$_TokenType_$1019", + "typeString": "enum ThreeSwap.TokenType" + } + }, + "visibility": "internal" + } + ], + "src": "2389:46:8" + }, + "returnParameters": { + "id": 1300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1299, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1370, + "src": "2454:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2454:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2453:9:8" + }, + "scope": 1371, + "src": "2376:635:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1372, + "src": "258:2756:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:2983:8" + }, + "id": 8 + }, + "contracts/Tokens/USDC.sol": { + "ast": { + "absolutePath": "contracts/Tokens/USDC.sol", + "exportedSymbols": { + "Context": [ + 933 + ], + "ERC20": [ + 799 + ], + "IERC20": [ + 877 + ], + "IERC20Errors": [ + 189 + ], + "IERC20Metadata": [ + 903 + ], + "Ownable": [ + 147 + ], + "USDC": [ + 1407 + ] + }, + "id": 1408, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1373, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1374, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1408, + "sourceUnit": 800, + "src": "60:55:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 1375, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1408, + "sourceUnit": 148, + "src": "117:52:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1376, + "name": "ERC20", + "nameLocations": [ + "190:5:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "190:5:9" + }, + "id": 1377, + "nodeType": "InheritanceSpecifier", + "src": "190:5:9" + }, + { + "baseName": { + "id": 1378, + "name": "Ownable", + "nameLocations": [ + "197:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "197:7:9" + }, + "id": 1379, + "nodeType": "InheritanceSpecifier", + "src": "197:7:9" + } + ], + "canonicalName": "USDC", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1407, + "linearizedBaseContracts": [ + 1407, + 147, + 799, + 189, + 903, + 877, + 933 + ], + "name": "USDC", + "nameLocation": "182:4:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1390, + "nodeType": "Block", + "src": "268:2:9", + "statements": [] + }, + "id": 1391, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "55534443", + "id": 1382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "232:6:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + { + "hexValue": "55534443", + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "240:6:9", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + } + ], + "id": 1384, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1381, + "name": "ERC20", + "nameLocations": [ + "226:5:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "226:5:9" + }, + "nodeType": "ModifierInvocation", + "src": "226:21:9" + }, + { + "arguments": [ + { + "expression": { + "id": 1386, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "256:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "260:6:9", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "256:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1388, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1385, + "name": "Ownable", + "nameLocations": [ + "248:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "248:7:9" + }, + "nodeType": "ModifierInvocation", + "src": "248:19:9" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [], + "src": "223:2:9" + }, + "returnParameters": { + "id": 1389, + "nodeType": "ParameterList", + "parameters": [], + "src": "268:0:9" + }, + "scope": 1407, + "src": "212:58:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1405, + "nodeType": "Block", + "src": "339:36:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1401, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "356:2:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1402, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1395, + "src": "360:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1400, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "350:5:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "350:17:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1404, + "nodeType": "ExpressionStatement", + "src": "350:17:9" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1406, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1398, + "kind": "modifierInvocation", + "modifierName": { + "id": 1397, + "name": "onlyOwner", + "nameLocations": [ + "329:9:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "329:9:9" + }, + "nodeType": "ModifierInvocation", + "src": "329:9:9" + } + ], + "name": "mint", + "nameLocation": "287:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1393, + "mutability": "mutable", + "name": "to", + "nameLocation": "300:2:9", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "292:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1395, + "mutability": "mutable", + "name": "amount", + "nameLocation": "312:6:9", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "304:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "304:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "291:28:9" + }, + "returnParameters": { + "id": 1399, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:9" + }, + "scope": 1407, + "src": "278:97:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1408, + "src": "173:205:9", + "usedErrors": [ + 13, + 18, + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [ + 24, + 811, + 820 + ] + } + ], + "src": "33:345:9" + }, + "id": 9 + }, + "contracts/Tokens/WBTC.sol": { + "ast": { + "absolutePath": "contracts/Tokens/WBTC.sol", + "exportedSymbols": { + "Context": [ + 933 + ], + "ERC20": [ + 799 + ], + "IERC20": [ + 877 + ], + "IERC20Errors": [ + 189 + ], + "IERC20Metadata": [ + 903 + ], + "Ownable": [ + 147 + ], + "WBTC": [ + 1443 + ] + }, + "id": 1444, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1409, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:10" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1410, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1444, + "sourceUnit": 800, + "src": "60:55:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 1411, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1444, + "sourceUnit": 148, + "src": "117:52:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1412, + "name": "ERC20", + "nameLocations": [ + "190:5:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "190:5:10" + }, + "id": 1413, + "nodeType": "InheritanceSpecifier", + "src": "190:5:10" + }, + { + "baseName": { + "id": 1414, + "name": "Ownable", + "nameLocations": [ + "197:7:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "197:7:10" + }, + "id": 1415, + "nodeType": "InheritanceSpecifier", + "src": "197:7:10" + } + ], + "canonicalName": "WBTC", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1443, + "linearizedBaseContracts": [ + 1443, + 147, + 799, + 189, + 903, + 877, + 933 + ], + "name": "WBTC", + "nameLocation": "182:4:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1426, + "nodeType": "Block", + "src": "268:2:10", + "statements": [] + }, + "id": 1427, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "57425443", + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "232:6:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", + "typeString": "literal_string \"WBTC\"" + }, + "value": "WBTC" + }, + { + "hexValue": "57425443", + "id": 1419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "240:6:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73", + "typeString": "literal_string \"WBTC\"" + }, + "value": "WBTC" + } + ], + "id": 1420, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1417, + "name": "ERC20", + "nameLocations": [ + "226:5:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "226:5:10" + }, + "nodeType": "ModifierInvocation", + "src": "226:21:10" + }, + { + "arguments": [ + { + "expression": { + "id": 1422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "256:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "260:6:10", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "256:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1424, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1421, + "name": "Ownable", + "nameLocations": [ + "248:7:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "248:7:10" + }, + "nodeType": "ModifierInvocation", + "src": "248:19:10" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [], + "src": "223:2:10" + }, + "returnParameters": { + "id": 1425, + "nodeType": "ParameterList", + "parameters": [], + "src": "268:0:10" + }, + "scope": 1443, + "src": "212:58:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1441, + "nodeType": "Block", + "src": "339:36:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1437, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "356:2:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1438, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1431, + "src": "360:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1436, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "350:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "350:17:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1440, + "nodeType": "ExpressionStatement", + "src": "350:17:10" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1442, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1434, + "kind": "modifierInvocation", + "modifierName": { + "id": 1433, + "name": "onlyOwner", + "nameLocations": [ + "329:9:10" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "329:9:10" + }, + "nodeType": "ModifierInvocation", + "src": "329:9:10" + } + ], + "name": "mint", + "nameLocation": "287:4:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1429, + "mutability": "mutable", + "name": "to", + "nameLocation": "300:2:10", + "nodeType": "VariableDeclaration", + "scope": 1442, + "src": "292:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1431, + "mutability": "mutable", + "name": "amount", + "nameLocation": "312:6:10", + "nodeType": "VariableDeclaration", + "scope": 1442, + "src": "304:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "304:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "291:28:10" + }, + "returnParameters": { + "id": 1435, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:10" + }, + "scope": 1443, + "src": "278:97:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1444, + "src": "173:205:10", + "usedErrors": [ + 13, + 18, + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [ + 24, + 811, + 820 + ] + } + ], + "src": "33:345:10" + }, + "id": 10 + }, + "contracts/Tokens/WETH.sol": { + "ast": { + "absolutePath": "contracts/Tokens/WETH.sol", + "exportedSymbols": { + "Context": [ + 933 + ], + "ERC20": [ + 799 + ], + "IERC20": [ + 877 + ], + "IERC20Errors": [ + 189 + ], + "IERC20Metadata": [ + 903 + ], + "Ownable": [ + 147 + ], + "USDC": [ + 1479 + ] + }, + "id": 1480, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1445, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:11" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 1446, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1480, + "sourceUnit": 800, + "src": "60:55:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 1447, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1480, + "sourceUnit": 148, + "src": "117:52:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1448, + "name": "ERC20", + "nameLocations": [ + "190:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "190:5:11" + }, + "id": 1449, + "nodeType": "InheritanceSpecifier", + "src": "190:5:11" + }, + { + "baseName": { + "id": 1450, + "name": "Ownable", + "nameLocations": [ + "197:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "197:7:11" + }, + "id": 1451, + "nodeType": "InheritanceSpecifier", + "src": "197:7:11" + } + ], + "canonicalName": "USDC", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1479, + "linearizedBaseContracts": [ + 1479, + 147, + 799, + 189, + 903, + 877, + 933 + ], + "name": "USDC", + "nameLocation": "182:4:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1462, + "nodeType": "Block", + "src": "268:2:11", + "statements": [] + }, + "id": 1463, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "55534443", + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "232:6:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + }, + { + "hexValue": "55534443", + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "240:6:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa", + "typeString": "literal_string \"USDC\"" + }, + "value": "USDC" + } + ], + "id": 1456, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1453, + "name": "ERC20", + "nameLocations": [ + "226:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 799, + "src": "226:5:11" + }, + "nodeType": "ModifierInvocation", + "src": "226:21:11" + }, + { + "arguments": [ + { + "expression": { + "id": 1458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "256:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "260:6:11", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "256:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1460, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 1457, + "name": "Ownable", + "nameLocations": [ + "248:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "248:7:11" + }, + "nodeType": "ModifierInvocation", + "src": "248:19:11" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1452, + "nodeType": "ParameterList", + "parameters": [], + "src": "223:2:11" + }, + "returnParameters": { + "id": 1461, + "nodeType": "ParameterList", + "parameters": [], + "src": "268:0:11" + }, + "scope": 1479, + "src": "212:58:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1477, + "nodeType": "Block", + "src": "339:36:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1465, + "src": "356:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1474, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1467, + "src": "360:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1472, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "350:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "350:17:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1476, + "nodeType": "ExpressionStatement", + "src": "350:17:11" + } + ] + }, + "functionSelector": "40c10f19", + "id": 1478, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1470, + "kind": "modifierInvocation", + "modifierName": { + "id": 1469, + "name": "onlyOwner", + "nameLocations": [ + "329:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "329:9:11" + }, + "nodeType": "ModifierInvocation", + "src": "329:9:11" + } + ], + "name": "mint", + "nameLocation": "287:4:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "to", + "nameLocation": "300:2:11", + "nodeType": "VariableDeclaration", + "scope": 1478, + "src": "292:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1467, + "mutability": "mutable", + "name": "amount", + "nameLocation": "312:6:11", + "nodeType": "VariableDeclaration", + "scope": 1478, + "src": "304:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "304:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "291:28:11" + }, + "returnParameters": { + "id": 1471, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:11" + }, + "scope": 1479, + "src": "278:97:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1480, + "src": "173:205:11", + "usedErrors": [ + 13, + 18, + 159, + 164, + 169, + 178, + 183, + 188 + ], + "usedEvents": [ + 24, + 811, + 820 + ] + } + ], + "src": "33:345:11" + }, + "id": 11 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@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 ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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 ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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 ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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 ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.\",\"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}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@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 ERC20 standard as defined in the EIP.\",\"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\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"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 ERC20 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\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]}},\"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/Oracle/Oracle.sol": { + "Oracle": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "ValueSet", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "oracleValues", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "string", + "name": "value", + "type": "string" + } + ], + "name": "setValue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506109ce806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063ec86cfad1461003b578063ed5ae68114610057575b600080fd5b610055600480360381019061005091906103c1565b610088565b005b610071600480360381019061006c9190610439565b6101a5565b60405161007f92919061051a565b60405180910390f35b60008251116100cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c390610596565b60405180910390fd5b6000815111610110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610602565b60405180910390fd5b604051806040016040528082815260200143815250600083604051610135919061065e565b908152602001604051809103902060008201518160000190816101589190610881565b50602082015181600101559050507f117a8770dd8b7109c2e7e3cee3bb8634f305ba8342bdcd2e8da366a169a267d282824360405161019993929190610953565b60405180910390a15050565b6000818051602081018201805184825260208301602085012081835280955050505050506000915090508060000180546101de906106a4565b80601f016020809104026020016040519081016040528092919081815260200182805461020a906106a4565b80156102575780601f1061022c57610100808354040283529160200191610257565b820191906000526020600020905b81548152906001019060200180831161023a57829003601f168201915b5050505050908060010154905082565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102ce82610285565b810181811067ffffffffffffffff821117156102ed576102ec610296565b5b80604052505050565b6000610300610267565b905061030c82826102c5565b919050565b600067ffffffffffffffff82111561032c5761032b610296565b5b61033582610285565b9050602081019050919050565b82818337600083830152505050565b600061036461035f84610311565b6102f6565b9050828152602081018484840111156103805761037f610280565b5b61038b848285610342565b509392505050565b600082601f8301126103a8576103a761027b565b5b81356103b8848260208601610351565b91505092915050565b600080604083850312156103d8576103d7610271565b5b600083013567ffffffffffffffff8111156103f6576103f5610276565b5b61040285828601610393565b925050602083013567ffffffffffffffff81111561042357610422610276565b5b61042f85828601610393565b9150509250929050565b60006020828403121561044f5761044e610271565b5b600082013567ffffffffffffffff81111561046d5761046c610276565b5b61047984828501610393565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104bc5780820151818401526020810190506104a1565b60008484015250505050565b60006104d382610482565b6104dd818561048d565b93506104ed81856020860161049e565b6104f681610285565b840191505092915050565b6000819050919050565b61051481610501565b82525050565b6000604082019050818103600083015261053481856104c8565b9050610543602083018461050b565b9392505050565b7f4b65792063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061058060138361048d565b915061058b8261054a565b602082019050919050565b600060208201905081810360008301526105af81610573565b9050919050565b7f56616c75652063616e6e6f7420626520656d7074790000000000000000000000600082015250565b60006105ec60158361048d565b91506105f7826105b6565b602082019050919050565b6000602082019050818103600083015261061b816105df565b9050919050565b600081905092915050565b600061063882610482565b6106428185610622565b935061065281856020860161049e565b80840191505092915050565b600061066a828461062d565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106bc57607f821691505b6020821081036106cf576106ce610675565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106fa565b61074186836106fa565b95508019841693508086168417925050509392505050565b6000819050919050565b600061077e61077961077484610501565b610759565b610501565b9050919050565b6000819050919050565b61079883610763565b6107ac6107a482610785565b848454610707565b825550505050565b600090565b6107c16107b4565b6107cc81848461078f565b505050565b5b818110156107f0576107e56000826107b9565b6001810190506107d2565b5050565b601f82111561083557610806816106d5565b61080f846106ea565b8101602085101561081e578190505b61083261082a856106ea565b8301826107d1565b50505b505050565b600082821c905092915050565b60006108586000198460080261083a565b1980831691505092915050565b60006108718383610847565b9150826002028217905092915050565b61088a82610482565b67ffffffffffffffff8111156108a3576108a2610296565b5b6108ad82546106a4565b6108b88282856107f4565b600060209050601f8311600181146108eb57600084156108d9578287015190505b6108e38582610865565b86555061094b565b601f1984166108f9866106d5565b60005b82811015610921578489015182556001820191506020850194506020810190506108fc565b8683101561093e578489015161093a601f891682610847565b8355505b6001600288020188555050505b505050505050565b6000606082019050818103600083015261096d81866104c8565b9050818103602083015261098181856104c8565b9050610990604083018461050b565b94935050505056fea264697066735822122046500d3f2f20884b7e9cce54d8f08b2d0513d5385fd053e13dd54a0a3990217a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9CE DUP1 PUSH2 0x20 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xEC86CFAD EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xED5AE681 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x3C1 JUMP JUMPDEST PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7F SWAP3 SWAP2 SWAP1 PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH2 0xCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3 SWAP1 PUSH2 0x596 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x107 SWAP1 PUSH2 0x602 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD NUMBER DUP2 MSTORE POP PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x881 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH32 0x117A8770DD8B7109C2E7E3CEE3BB8634F305BA8342BDCD2E8DA366A169A267D2 DUP3 DUP3 NUMBER PUSH1 0x40 MLOAD PUSH2 0x199 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1DE SWAP1 PUSH2 0x6A4 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 0x20A SWAP1 PUSH2 0x6A4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x257 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x22C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x257 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 0x23A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT 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 0x2CE DUP3 PUSH2 0x285 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2ED JUMPI PUSH2 0x2EC PUSH2 0x296 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x300 PUSH2 0x267 JUMP JUMPDEST SWAP1 POP PUSH2 0x30C DUP3 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x32C JUMPI PUSH2 0x32B PUSH2 0x296 JUMP JUMPDEST JUMPDEST PUSH2 0x335 DUP3 PUSH2 0x285 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x364 PUSH2 0x35F DUP5 PUSH2 0x311 JUMP JUMPDEST PUSH2 0x2F6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x380 JUMPI PUSH2 0x37F PUSH2 0x280 JUMP JUMPDEST JUMPDEST PUSH2 0x38B DUP5 DUP3 DUP6 PUSH2 0x342 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x27B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x351 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D8 JUMPI PUSH2 0x3D7 PUSH2 0x271 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F6 JUMPI PUSH2 0x3F5 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x402 DUP6 DUP3 DUP7 ADD PUSH2 0x393 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x423 JUMPI PUSH2 0x422 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x42F DUP6 DUP3 DUP7 ADD PUSH2 0x393 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F JUMPI PUSH2 0x44E PUSH2 0x271 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46D JUMPI PUSH2 0x46C PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x479 DUP5 DUP3 DUP6 ADD PUSH2 0x393 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 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 0x4BC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x4DD DUP2 DUP6 PUSH2 0x48D JUMP JUMPDEST SWAP4 POP PUSH2 0x4ED DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E JUMP JUMPDEST PUSH2 0x4F6 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x514 DUP2 PUSH2 0x501 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x534 DUP2 DUP6 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x543 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x50B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4B65792063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x580 PUSH1 0x13 DUP4 PUSH2 0x48D JUMP JUMPDEST SWAP2 POP PUSH2 0x58B DUP3 PUSH2 0x54A 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 0x5AF DUP2 PUSH2 0x573 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x56616C75652063616E6E6F7420626520656D7074790000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC PUSH1 0x15 DUP4 PUSH2 0x48D JUMP JUMPDEST SWAP2 POP PUSH2 0x5F7 DUP3 PUSH2 0x5B6 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 0x61B DUP2 PUSH2 0x5DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x638 DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x642 DUP2 DUP6 PUSH2 0x622 JUMP JUMPDEST SWAP4 POP PUSH2 0x652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A DUP3 DUP5 PUSH2 0x62D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x6BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6CF JUMPI PUSH2 0x6CE PUSH2 0x675 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 PUSH2 0x737 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x741 DUP7 DUP4 PUSH2 0x6FA 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 PUSH2 0x77E PUSH2 0x779 PUSH2 0x774 DUP5 PUSH2 0x501 JUMP JUMPDEST PUSH2 0x759 JUMP JUMPDEST PUSH2 0x501 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x798 DUP4 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x7AC PUSH2 0x7A4 DUP3 PUSH2 0x785 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x707 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7C1 PUSH2 0x7B4 JUMP JUMPDEST PUSH2 0x7CC DUP2 DUP5 DUP5 PUSH2 0x78F JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH2 0x7E5 PUSH1 0x0 DUP3 PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x835 JUMPI PUSH2 0x806 DUP2 PUSH2 0x6D5 JUMP JUMPDEST PUSH2 0x80F DUP5 PUSH2 0x6EA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x81E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x832 PUSH2 0x82A DUP6 PUSH2 0x6EA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7D1 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 PUSH2 0x858 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x83A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x871 DUP4 DUP4 PUSH2 0x847 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x88A DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8A3 JUMPI PUSH2 0x8A2 PUSH2 0x296 JUMP JUMPDEST JUMPDEST PUSH2 0x8AD DUP3 SLOAD PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x8B8 DUP3 DUP3 DUP6 PUSH2 0x7F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x8EB JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8D9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x8E3 DUP6 DUP3 PUSH2 0x865 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x8F9 DUP7 PUSH2 0x6D5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x921 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 PUSH2 0x8FC JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x93E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x93A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x847 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 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x96D DUP2 DUP7 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x981 DUP2 DUP6 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x990 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x50B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID POP 0xD EXTCODEHASH 0x2F KECCAK256 DUP9 0x4B PUSH31 0x9CCE54D8F08B2D0513D5385FD053E13DD54A0A3990217A64736F6C63430008 EQ STOP CALLER ", + "sourceMap": "60:559:6:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@oracleValues_945": { + "entryPoint": 421, + "id": 945, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@setValue_1000": { + "entryPoint": 136, + "id": 1000, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 849, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 915, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 1081, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr": { + "entryPoint": 961, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1224, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1581, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1503, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1395, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 1291, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 1630, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed": { + "entryPoint": 2387, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed": { + "entryPoint": 1306, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1538, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1430, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 758, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 615, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 785, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1749, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1154, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1165, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1570, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 2036, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 1281, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 2001, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1891, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 2177, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 834, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1182, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1770, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 2149, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 709, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1881, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 2119, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1653, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 662, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1925, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 635, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 640, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 630, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 625, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 645, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1786, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 2106, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1977, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3": { + "entryPoint": 1462, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b": { + "entryPoint": 1354, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1799, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1935, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1972, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:13716:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:12", + "type": "" + } + ], + "src": "7:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "423:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "433:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "433:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "433:12:12" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "334:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "546:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "563:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "566:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "556:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "556:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "556:12:12" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "457:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "628:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "638:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "652:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "652:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "672:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "668:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "668:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "648:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "648:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "638:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "611:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "621:6:12", + "type": "" + } + ], + "src": "580:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "716:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "733:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "736:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "726:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "726:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "726:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "830:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "833:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "823:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "823:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "823:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "854:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "857:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "847:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "847:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "847:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "688:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:238:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "927:58:12", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "949:6:12" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "979:4:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "957:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "957:27:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "945:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "945:40:12" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "931:10:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1096:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1098:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "1098:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1098:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1039:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1051:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1036:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1036:34:12" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1075:10:12" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1087:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1072:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1072:22:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1033:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1033:62:12" + }, + "nodeType": "YulIf", + "src": "1030:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1134:2:12", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1138:10:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1127:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1127:22:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1127:22:12" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "903:6:12", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "911:4:12", + "type": "" + } + ], + "src": "874:281:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1202:88:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1212:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1222:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1222:20:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1212:6:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1271:6:12" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1279:4:12" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1251:19:12" + }, + "nodeType": "YulFunctionCall", + "src": "1251:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1251:33:12" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1186:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1195:6:12", + "type": "" + } + ], + "src": "1161:129:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1363:241:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1468:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1470:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "1470:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1470:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1440:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1448:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1437:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1437:30:12" + }, + "nodeType": "YulIf", + "src": "1434:56:12" + }, + { + "nodeType": "YulAssignment", + "src": "1500:37:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1530:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1508:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "1508:29:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1500:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1574:23:12", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1586:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1592:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1582:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1582:15:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1574:4:12" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1347:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1358:4:12", + "type": "" + } + ], + "src": "1296:308:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1674:82:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1697:3:12" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "1702:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1707:6:12" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "1684:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "1684:30:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1684:30:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "1734:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1739:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1730:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1730:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1748:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1723:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1723:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1723:27:12" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1656:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1661:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1666:6:12", + "type": "" + } + ], + "src": "1610:146:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1846:341:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1856:75:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1923:6:12" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1881:41:12" + }, + "nodeType": "YulFunctionCall", + "src": "1881:49:12" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "1865:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "1865:66:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1856:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1947:5:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1954:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1940:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1940:21:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1940:21:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1970:27:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1985:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1992:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1981:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1981:16:12" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1974:3:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2035:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2037:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2037:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2037:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2016:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2021:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2012:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2012:16:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2030:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2009:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2009:25:12" + }, + "nodeType": "YulIf", + "src": "2006:112:12" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2164:3:12" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2169:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2174:6:12" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2127:36:12" + }, + "nodeType": "YulFunctionCall", + "src": "2127:54:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2127:54:12" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1819:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1824:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1832:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1840:5:12", + "type": "" + } + ], + "src": "1762:425:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2269:278:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2318:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2320:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2320:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2320:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2297:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2305:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2293:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2293:17:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2312:3:12" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2289:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2289:27:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2282:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2282:35:12" + }, + "nodeType": "YulIf", + "src": "2279:122:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2410:34:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2437:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2424:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2424:20:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2414:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2453:88:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2514:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2522:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2510:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2510:17:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2529:6:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2537:3:12" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2462:47:12" + }, + "nodeType": "YulFunctionCall", + "src": "2462:79:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2453:5:12" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2247:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2255:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2263:5:12", + "type": "" + } + ], + "src": "2207:340:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2656:731:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2702:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2704:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2704:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2704:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2677:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2686:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2673:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2673:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2698:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2669:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2669:32:12" + }, + "nodeType": "YulIf", + "src": "2666:119:12" + }, + { + "nodeType": "YulBlock", + "src": "2795:287:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2810:45:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2841:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2852:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2837:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2837:17:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2824:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2824:31:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2814:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2902:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "2904:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2904:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2904:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2874:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2882:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2871:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2871:30:12" + }, + "nodeType": "YulIf", + "src": "2868:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "2999:73:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3044:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3055:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3040:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3040:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3064:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3009:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "3009:63:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2999:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3092:288:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3107:46:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3138:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3149:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3134:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3134:18:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3121:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "3121:32:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3111:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3200:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3202:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3202:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3202:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3172:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3180:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3169:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3169:30:12" + }, + "nodeType": "YulIf", + "src": "3166:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "3297:73:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3342:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3353:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3338:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3338:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3362:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3307:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "3307:63:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3297:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2618:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2629:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2641:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2649:6:12", + "type": "" + } + ], + "src": "2553:834:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3469:433:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3515:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3517:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3517:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3517:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3490:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3499:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3486:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3486:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3511:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3482:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3482:32:12" + }, + "nodeType": "YulIf", + "src": "3479:119:12" + }, + { + "nodeType": "YulBlock", + "src": "3608:287:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3623:45:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3654:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3665:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3650:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3650:17:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3637:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "3637:31:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3627:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3715:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "3717:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3717:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3717:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3687:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3695:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "3684:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3684:30:12" + }, + "nodeType": "YulIf", + "src": "3681:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "3812:73:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3857:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3868:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3853:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3853:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3877:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3822:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "3822:63:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3812:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3439:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3450:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3462:6:12", + "type": "" + } + ], + "src": "3393:509:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3967:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3978:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3994:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3988:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "3988:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3978:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3950:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3960:6:12", + "type": "" + } + ], + "src": "3908:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4109:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4126:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4131:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4119:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4119:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4119:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "4147:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4166:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4171:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4162:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4162:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4147:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4081:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4086:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4097:11:12", + "type": "" + } + ], + "src": "4013:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4250:184:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4260:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4269:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4264:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4329:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4354:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4359:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4350:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4350:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4373:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4378:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4369:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4369:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4363:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4363:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4343:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4343:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4343:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4290:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4293:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4287:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4287:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4301:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4303:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4312:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4315:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4308:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4308:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4303:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4283:3:12", + "statements": [] + }, + "src": "4279:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4412:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4417:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4408:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4408:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4426:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4401:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4401:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4401:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4232:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4237:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4242:6:12", + "type": "" + } + ], + "src": "4188:246:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4532:285:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4542:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4589:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4556:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "4556:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4546:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4604:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4670:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4675:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4611:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "4611:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4604:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4730:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4737:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4726:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4726:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4744:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4749:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4691:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "4691:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4691:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "4765:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4776:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4803:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "4781:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "4781:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4772:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4772:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4765:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4513:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4520:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4528:3:12", + "type": "" + } + ], + "src": "4440:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4868:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4878:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4889:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4878:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4850:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4860:7:12", + "type": "" + } + ], + "src": "4823:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4971:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4988:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5011:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4993:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4993:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4981:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4981:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4981:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4959:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4966:3:12", + "type": "" + } + ], + "src": "4906:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5176:277:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5186:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5198:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5209:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5194:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5194:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5186:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5233:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5244:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5229:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5229:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5252:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5258:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5248:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5248:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5222:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5222:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5222:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "5278:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5350:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5359:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5286:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "5286:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5278:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5418:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5431:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5442:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5427:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5427:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5374:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5374:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5374:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5140:9:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5152:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5160:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5171:4:12", + "type": "" + } + ], + "src": "5030:423:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5565:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5587:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5595:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5583:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5583:14:12" + }, + { + "hexValue": "4b65792063616e6e6f7420626520656d707479", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5599:21:12", + "type": "", + "value": "Key cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5576:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5576:45:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5576:45:12" + } + ] + }, + "name": "store_literal_in_memory_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5557:6:12", + "type": "" + } + ], + "src": "5459:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5780:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5790:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5856:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5861:2:12", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5797:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "5797:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5790:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5962:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b", + "nodeType": "YulIdentifier", + "src": "5873:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "5873:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5873:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "5975:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5986:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5991:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5982:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5982:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5975:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5768:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5776:3:12", + "type": "" + } + ], + "src": "5634:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6177:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6187:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6199:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6210:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6195:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6195:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6187:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6234:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6245:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6230:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6230:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6253:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6259:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6249:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6249:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6223:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6223:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6223:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "6279:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6413:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6287:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "6287:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6279:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6157:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6172:4:12", + "type": "" + } + ], + "src": "6006:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6537:65:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6559:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6567:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6555:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6555:14:12" + }, + { + "hexValue": "56616c75652063616e6e6f7420626520656d707479", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6571:23:12", + "type": "", + "value": "Value cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6548:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6548:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6548:47:12" + } + ] + }, + "name": "store_literal_in_memory_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6529:6:12", + "type": "" + } + ], + "src": "6431:171:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6754:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6764:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6830:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6835:2:12", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6771:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "6771:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6764:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6936:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3", + "nodeType": "YulIdentifier", + "src": "6847:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "6847:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6847:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "6949:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6960:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6965:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6956:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6956:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6949:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6742:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6750:3:12", + "type": "" + } + ], + "src": "6608:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7151:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7161:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7173:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7184:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7169:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7169:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7161:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7208:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7219:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7204:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7204:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7227:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7233:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7223:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7223:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7197:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7197:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7197:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "7253:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7387:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7261:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "7261:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7253:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7131:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7146:4:12", + "type": "" + } + ], + "src": "6980:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7519:34:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7529:18:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7544:3:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "7529:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7491:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7496:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "7507:11:12", + "type": "" + } + ], + "src": "7405:148:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7669:280:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7679:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7726:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "7693:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "7693:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "7683:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7741:96:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7825:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7830:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "7748:76:12" + }, + "nodeType": "YulFunctionCall", + "src": "7748:89:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7741:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7885:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7892:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7881:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7881:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7899:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7904:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "7846:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "7846:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7846:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "7920:23:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7931:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "7936:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7927:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7927:16:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7920:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7650:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7657:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7665:3:12", + "type": "" + } + ], + "src": "7559:390:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8091:139:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8102:102:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "8191:6:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8200:3:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "8109:81:12" + }, + "nodeType": "YulFunctionCall", + "src": "8109:95:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8102:3:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8214:10:12", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8221:3:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8214:3:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8070:3:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "8076:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8087:3:12", + "type": "" + } + ], + "src": "7955:275:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8264:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8281:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8284:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8274:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8274:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8274:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8378:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8381:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8371:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8371:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8371:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8402:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8405:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8395:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8395:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8395:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "8236:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8473:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8483:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8497:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8503:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8493:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8493:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8483:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8514:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8544:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8550:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8540:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8540:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "8518:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8591:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8605:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8619:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8627:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8615:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8615:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8605:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "8571:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8564:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8564:26:12" + }, + "nodeType": "YulIf", + "src": "8561:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8694:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "8708:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "8708:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8708:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "8658:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8681:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8689:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8678:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "8678:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8655:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "8655:38:12" + }, + "nodeType": "YulIf", + "src": "8652:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "8457:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8466:6:12", + "type": "" + } + ], + "src": "8422:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8802:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8812:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "8820:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8812:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8840:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "8843:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8833:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8833:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8833:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "8856:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8874:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8877:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "8864:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "8864:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8856:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "8789:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "8797:4:12", + "type": "" + } + ], + "src": "8748:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8939:49:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8949:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8967:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8974:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8963:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8963:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8979:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8959:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8959:23:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "8949:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8922:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "8932:6:12", + "type": "" + } + ], + "src": "8895:93:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9047:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9057:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "9082:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9088:5:12" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "9078:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9078:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "9057:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "9022:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9028:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "9038:8:12", + "type": "" + } + ], + "src": "8994:107:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9183:317:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9193:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "9214:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9226:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "9210:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9210:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "9197:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "9237:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "9268:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9279:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "9249:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "9249:97:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "9241:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9355:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "9386:9:12" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "9397:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "9367:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "9367:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "9355:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9415:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9428:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "9439:4:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "9435:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9435:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9424:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9424:21:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9415:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9454:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9467:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "9478:8:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "9488:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9474:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9474:19:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "9464:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "9464:30:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "9454:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9144:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "9151:10:12", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "9163:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "9176:6:12", + "type": "" + } + ], + "src": "9107:393:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9538:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9548:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9555:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "9548:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9524:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "9534:3:12", + "type": "" + } + ], + "src": "9506:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9632:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9642:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9700:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9682:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9682:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "9673:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "9673:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9655:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9655:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "9642:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9612:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "9622:9:12", + "type": "" + } + ], + "src": "9572:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9767:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9777:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9784:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "9777:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9753:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "9763:3:12", + "type": "" + } + ], + "src": "9720:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9877:193:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9887:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "9942:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "9911:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "9911:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "9891:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9966:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "10006:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "10000:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "10000:11:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10013:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "10045:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "10021:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "10021:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "9972:27:12" + }, + "nodeType": "YulFunctionCall", + "src": "9972:91:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9959:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9959:105:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9959:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "9854:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "9860:6:12", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "9868:7:12", + "type": "" + } + ], + "src": "9801:269:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10125:24:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10135:8:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10142:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "10135:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "10121:3:12", + "type": "" + } + ], + "src": "10076:73:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10208:136:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10218:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "10232:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "10232:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "10222:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "10317:4:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10323:6:12" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "10331:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "10273:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "10273:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10273:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "10194:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10200:6:12", + "type": "" + } + ], + "src": "10155:189:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10400:136:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10467:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "10511:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10518:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "10481:29:12" + }, + "nodeType": "YulFunctionCall", + "src": "10481:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10481:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "10420:5:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10427:3:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10417:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "10417:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "10432:26:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10434:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "10447:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10454:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10443:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10443:13:12" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "10434:5:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "10414:2:12", + "statements": [] + }, + "src": "10410:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "10388:5:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10395:3:12", + "type": "" + } + ], + "src": "10350:186:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10621:464:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10647:431:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "10661:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "10709:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "10677:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "10677:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "10665:8:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10728:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "10751:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "10779:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "10761:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "10761:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10747:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10747:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "10732:11:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10948:27:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10950:23:12", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "10965:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "10950:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "10932:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10944:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10929:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "10929:18:12" + }, + "nodeType": "YulIf", + "src": "10926:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "11017:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "11034:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "11062:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "11044:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "11044:22:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11030:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11030:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "10988:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "10988:80:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10988:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "10638:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10643:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "10635:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "10635:11:12" + }, + "nodeType": "YulIf", + "src": "10632:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "10597:5:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "10604:3:12", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "10609:10:12", + "type": "" + } + ], + "src": "10542:543:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11154:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11164:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "11189:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "11195:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "11185:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11185:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "11164:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "11129:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "11135:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "11145:8:12", + "type": "" + } + ], + "src": "11091:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11265:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11275:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11324:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "11327:5:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "11320:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11320:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11339:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "11335:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11335:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "11291:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "11291:51:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "11287:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11287:56:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "11279:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11352:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11366:4:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "11372:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "11362:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11362:15:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "11352:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "11242:4:12", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "11248:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "11258:6:12", + "type": "" + } + ], + "src": "11214:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11469:214:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11602:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11629:4:12" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "11635:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "11610:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "11610:29:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11602:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11648:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "11659:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11669:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "11672:3:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "11665:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11665:11:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "11656:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "11656:21:12" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "11648:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "11450:4:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "11456:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "11464:4:12", + "type": "" + } + ], + "src": "11388:295:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11780:1303:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11791:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "11838:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "11805:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "11805:37:12" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "11795:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11927:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "11929:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "11929:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11929:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "11899:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11907:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "11896:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "11896:30:12" + }, + "nodeType": "YulIf", + "src": "11893:56:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11959:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12005:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "11999:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "11999:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "11973:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "11973:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "11963:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12104:4:12" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "12110:6:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12118:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "12058:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "12058:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12058:67:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12135:18:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12152:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "12139:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12163:17:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12176:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12163:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "12227:611:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12241:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12260:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12272:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "12268:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12268:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "12256:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12256:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "12245:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12292:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12338:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "12306:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "12306:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "12296:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12356:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12365:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "12360:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12424:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "12449:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12467:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12472:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12463:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12463:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12457:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "12457:26:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12442:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12442:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12442:42:12" + }, + { + "nodeType": "YulAssignment", + "src": "12501:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "12515:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12523:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12511:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12511:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "12501:6:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12542:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12559:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12570:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12555:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12555:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12542:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "12390:1:12" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "12393:7:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "12387:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "12387:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "12402:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12404:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "12413:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12416:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12409:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12409:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "12404:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "12383:3:12", + "statements": [] + }, + "src": "12379:208:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12623:156:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12641:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12668:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12673:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12664:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12664:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12658:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "12658:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "12645:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "12708:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "12735:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12750:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12758:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "12746:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12746:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "12716:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "12716:48:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12701:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12701:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12701:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "12606:7:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12615:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "12603:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "12603:19:12" + }, + "nodeType": "YulIf", + "src": "12600:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12799:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12813:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12821:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "12809:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12809:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12825:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12805:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12805:22:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12792:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12792:36:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12792:36:12" + } + ] + }, + "nodeType": "YulCase", + "src": "12220:618:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12225:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12855:222:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12869:14:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12882:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "12873:5:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12906:67:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12924:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "12943:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "12948:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12939:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12939:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12933:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "12933:26:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "12924:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12899:6:12" + }, + "nodeType": "YulIf", + "src": "12896:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "12993:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13052:5:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "13059:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "12999:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "12999:67:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "12986:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12986:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12986:81:12" + } + ] + }, + "nodeType": "YulCase", + "src": "12847:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "12200:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12208:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12197:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "12197:14:12" + }, + "nodeType": "YulSwitch", + "src": "12190:887:12" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "11769:4:12", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "11775:3:12", + "type": "" + } + ], + "src": "11688:1395:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13283:430:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13293:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13305:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13316:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13301:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13301:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13293:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13340:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13351:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13336:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13336:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13359:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13365:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13355:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13355:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13329:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13329:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13329:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "13385:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "13457:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13466:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13393:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "13393:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13385:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13492:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13503:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13488:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13488:18:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13512:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13518:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13508:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13508:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13481:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13481:48:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13481:48:12" + }, + { + "nodeType": "YulAssignment", + "src": "13538:86:12", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "13610:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13619:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13546:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "13546:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13538:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "13678:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13691:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13702:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13687:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13687:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "13634:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "13634:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13634:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13239:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "13251:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "13259:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "13267:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13278:4:12", + "type": "" + } + ], + "src": "13089:624:12" + } + ] + }, + "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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 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 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_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\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 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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\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 abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b(memPtr) {\n\n mstore(add(memPtr, 0), \"Key cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b__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_d95c2b6424fdff4afe2c6d4dc698cbaa750a3d7778e78e0a3dba25531968aa3b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3(memPtr) {\n\n mstore(add(memPtr, 0), \"Value cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3__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_75ae14ca8d1fa3b5f9bcd8890a30226aa7b08e5aa92b70939e35a4c66dd704b3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\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 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 function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\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 mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063ec86cfad1461003b578063ed5ae68114610057575b600080fd5b610055600480360381019061005091906103c1565b610088565b005b610071600480360381019061006c9190610439565b6101a5565b60405161007f92919061051a565b60405180910390f35b60008251116100cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c390610596565b60405180910390fd5b6000815111610110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610602565b60405180910390fd5b604051806040016040528082815260200143815250600083604051610135919061065e565b908152602001604051809103902060008201518160000190816101589190610881565b50602082015181600101559050507f117a8770dd8b7109c2e7e3cee3bb8634f305ba8342bdcd2e8da366a169a267d282824360405161019993929190610953565b60405180910390a15050565b6000818051602081018201805184825260208301602085012081835280955050505050506000915090508060000180546101de906106a4565b80601f016020809104026020016040519081016040528092919081815260200182805461020a906106a4565b80156102575780601f1061022c57610100808354040283529160200191610257565b820191906000526020600020905b81548152906001019060200180831161023a57829003601f168201915b5050505050908060010154905082565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102ce82610285565b810181811067ffffffffffffffff821117156102ed576102ec610296565b5b80604052505050565b6000610300610267565b905061030c82826102c5565b919050565b600067ffffffffffffffff82111561032c5761032b610296565b5b61033582610285565b9050602081019050919050565b82818337600083830152505050565b600061036461035f84610311565b6102f6565b9050828152602081018484840111156103805761037f610280565b5b61038b848285610342565b509392505050565b600082601f8301126103a8576103a761027b565b5b81356103b8848260208601610351565b91505092915050565b600080604083850312156103d8576103d7610271565b5b600083013567ffffffffffffffff8111156103f6576103f5610276565b5b61040285828601610393565b925050602083013567ffffffffffffffff81111561042357610422610276565b5b61042f85828601610393565b9150509250929050565b60006020828403121561044f5761044e610271565b5b600082013567ffffffffffffffff81111561046d5761046c610276565b5b61047984828501610393565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104bc5780820151818401526020810190506104a1565b60008484015250505050565b60006104d382610482565b6104dd818561048d565b93506104ed81856020860161049e565b6104f681610285565b840191505092915050565b6000819050919050565b61051481610501565b82525050565b6000604082019050818103600083015261053481856104c8565b9050610543602083018461050b565b9392505050565b7f4b65792063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061058060138361048d565b915061058b8261054a565b602082019050919050565b600060208201905081810360008301526105af81610573565b9050919050565b7f56616c75652063616e6e6f7420626520656d7074790000000000000000000000600082015250565b60006105ec60158361048d565b91506105f7826105b6565b602082019050919050565b6000602082019050818103600083015261061b816105df565b9050919050565b600081905092915050565b600061063882610482565b6106428185610622565b935061065281856020860161049e565b80840191505092915050565b600061066a828461062d565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106bc57607f821691505b6020821081036106cf576106ce610675565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106fa565b61074186836106fa565b95508019841693508086168417925050509392505050565b6000819050919050565b600061077e61077961077484610501565b610759565b610501565b9050919050565b6000819050919050565b61079883610763565b6107ac6107a482610785565b848454610707565b825550505050565b600090565b6107c16107b4565b6107cc81848461078f565b505050565b5b818110156107f0576107e56000826107b9565b6001810190506107d2565b5050565b601f82111561083557610806816106d5565b61080f846106ea565b8101602085101561081e578190505b61083261082a856106ea565b8301826107d1565b50505b505050565b600082821c905092915050565b60006108586000198460080261083a565b1980831691505092915050565b60006108718383610847565b9150826002028217905092915050565b61088a82610482565b67ffffffffffffffff8111156108a3576108a2610296565b5b6108ad82546106a4565b6108b88282856107f4565b600060209050601f8311600181146108eb57600084156108d9578287015190505b6108e38582610865565b86555061094b565b601f1984166108f9866106d5565b60005b82811015610921578489015182556001820191506020850194506020810190506108fc565b8683101561093e578489015161093a601f891682610847565b8355505b6001600288020188555050505b505050505050565b6000606082019050818103600083015261096d81866104c8565b9050818103602083015261098181856104c8565b9050610990604083018461050b565b94935050505056fea264697066735822122046500d3f2f20884b7e9cce54d8f08b2d0513d5385fd053e13dd54a0a3990217a64736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xEC86CFAD EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xED5AE681 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x3C1 JUMP JUMPDEST PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x439 JUMP JUMPDEST PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7F SWAP3 SWAP2 SWAP1 PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH2 0xCC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3 SWAP1 PUSH2 0x596 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x107 SWAP1 PUSH2 0x602 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD NUMBER DUP2 MSTORE POP PUSH1 0x0 DUP4 PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x65E JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x881 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH32 0x117A8770DD8B7109C2E7E3CEE3BB8634F305BA8342BDCD2E8DA366A169A267D2 DUP3 DUP3 NUMBER PUSH1 0x40 MLOAD PUSH2 0x199 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1DE SWAP1 PUSH2 0x6A4 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 0x20A SWAP1 PUSH2 0x6A4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x257 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x22C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x257 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 0x23A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT 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 0x2CE DUP3 PUSH2 0x285 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2ED JUMPI PUSH2 0x2EC PUSH2 0x296 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x300 PUSH2 0x267 JUMP JUMPDEST SWAP1 POP PUSH2 0x30C DUP3 DUP3 PUSH2 0x2C5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x32C JUMPI PUSH2 0x32B PUSH2 0x296 JUMP JUMPDEST JUMPDEST PUSH2 0x335 DUP3 PUSH2 0x285 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x364 PUSH2 0x35F DUP5 PUSH2 0x311 JUMP JUMPDEST PUSH2 0x2F6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x380 JUMPI PUSH2 0x37F PUSH2 0x280 JUMP JUMPDEST JUMPDEST PUSH2 0x38B DUP5 DUP3 DUP6 PUSH2 0x342 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A8 JUMPI PUSH2 0x3A7 PUSH2 0x27B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x351 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D8 JUMPI PUSH2 0x3D7 PUSH2 0x271 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F6 JUMPI PUSH2 0x3F5 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x402 DUP6 DUP3 DUP7 ADD PUSH2 0x393 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x423 JUMPI PUSH2 0x422 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x42F DUP6 DUP3 DUP7 ADD PUSH2 0x393 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F JUMPI PUSH2 0x44E PUSH2 0x271 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46D JUMPI PUSH2 0x46C PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH2 0x479 DUP5 DUP3 DUP6 ADD PUSH2 0x393 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 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 0x4BC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x4DD DUP2 DUP6 PUSH2 0x48D JUMP JUMPDEST SWAP4 POP PUSH2 0x4ED DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E JUMP JUMPDEST PUSH2 0x4F6 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x514 DUP2 PUSH2 0x501 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x534 DUP2 DUP6 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x543 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x50B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4B65792063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x580 PUSH1 0x13 DUP4 PUSH2 0x48D JUMP JUMPDEST SWAP2 POP PUSH2 0x58B DUP3 PUSH2 0x54A 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 0x5AF DUP2 PUSH2 0x573 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x56616C75652063616E6E6F7420626520656D7074790000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC PUSH1 0x15 DUP4 PUSH2 0x48D JUMP JUMPDEST SWAP2 POP PUSH2 0x5F7 DUP3 PUSH2 0x5B6 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 0x61B DUP2 PUSH2 0x5DF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x638 DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x642 DUP2 DUP6 PUSH2 0x622 JUMP JUMPDEST SWAP4 POP PUSH2 0x652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x49E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66A DUP3 DUP5 PUSH2 0x62D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x6BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x6CF JUMPI PUSH2 0x6CE PUSH2 0x675 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 PUSH2 0x737 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x6FA JUMP JUMPDEST PUSH2 0x741 DUP7 DUP4 PUSH2 0x6FA 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 PUSH2 0x77E PUSH2 0x779 PUSH2 0x774 DUP5 PUSH2 0x501 JUMP JUMPDEST PUSH2 0x759 JUMP JUMPDEST PUSH2 0x501 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x798 DUP4 PUSH2 0x763 JUMP JUMPDEST PUSH2 0x7AC PUSH2 0x7A4 DUP3 PUSH2 0x785 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x707 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x7C1 PUSH2 0x7B4 JUMP JUMPDEST PUSH2 0x7CC DUP2 DUP5 DUP5 PUSH2 0x78F JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F0 JUMPI PUSH2 0x7E5 PUSH1 0x0 DUP3 PUSH2 0x7B9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x835 JUMPI PUSH2 0x806 DUP2 PUSH2 0x6D5 JUMP JUMPDEST PUSH2 0x80F DUP5 PUSH2 0x6EA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x81E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x832 PUSH2 0x82A DUP6 PUSH2 0x6EA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x7D1 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 PUSH2 0x858 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x83A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x871 DUP4 DUP4 PUSH2 0x847 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x88A DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8A3 JUMPI PUSH2 0x8A2 PUSH2 0x296 JUMP JUMPDEST JUMPDEST PUSH2 0x8AD DUP3 SLOAD PUSH2 0x6A4 JUMP JUMPDEST PUSH2 0x8B8 DUP3 DUP3 DUP6 PUSH2 0x7F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x8EB JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x8D9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x8E3 DUP6 DUP3 PUSH2 0x865 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x8F9 DUP7 PUSH2 0x6D5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x921 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 PUSH2 0x8FC JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x93E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x93A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x847 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 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x96D DUP2 DUP7 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x981 DUP2 DUP6 PUSH2 0x4C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x990 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x50B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID POP 0xD EXTCODEHASH 0x2F KECCAK256 DUP9 0x4B PUSH31 0x9CCE54D8F08B2D0513D5385FD053E13DD54A0A3990217A64736F6C63430008 EQ STOP CALLER ", + "sourceMap": "60:559:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:318;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;170:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;298:318;403:1;389:3;383:17;:21;375:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;469:1;453:5;447:19;:23;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;527:31;;;;;;;;538:5;527:31;;;;545:12;527:31;;;507:12;520:3;507:17;;;;;;:::i;:::-;;;;;;;;;;;;;:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;574:34;583:3;588:5;595:12;574:34;;;;;;;;:::i;:::-;;;;;;;;298:318;;:::o;170:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:12:-;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:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:146::-;1707:6;1702:3;1697;1684:30;1748:1;1739:6;1734:3;1730:16;1723:27;1610:146;;;:::o;1762:425::-;1840:5;1865:66;1881:49;1923:6;1881:49;:::i;:::-;1865:66;:::i;:::-;1856:75;;1954:6;1947:5;1940:21;1992:4;1985:5;1981:16;2030:3;2021:6;2016:3;2012:16;2009:25;2006:112;;;2037:79;;:::i;:::-;2006:112;2127:54;2174:6;2169:3;2164;2127:54;:::i;:::-;1846:341;1762:425;;;;;:::o;2207:340::-;2263:5;2312:3;2305:4;2297:6;2293:17;2289:27;2279:122;;2320:79;;:::i;:::-;2279:122;2437:6;2424:20;2462:79;2537:3;2529:6;2522:4;2514:6;2510:17;2462:79;:::i;:::-;2453:88;;2269:278;2207:340;;;;:::o;2553:834::-;2641:6;2649;2698:2;2686:9;2677:7;2673:23;2669:32;2666:119;;;2704:79;;:::i;:::-;2666:119;2852:1;2841:9;2837:17;2824:31;2882:18;2874:6;2871:30;2868:117;;;2904:79;;:::i;:::-;2868:117;3009:63;3064:7;3055:6;3044:9;3040:22;3009:63;:::i;:::-;2999:73;;2795:287;3149:2;3138:9;3134:18;3121:32;3180:18;3172:6;3169:30;3166:117;;;3202:79;;:::i;:::-;3166:117;3307:63;3362:7;3353:6;3342:9;3338:22;3307:63;:::i;:::-;3297:73;;3092:288;2553:834;;;;;:::o;3393:509::-;3462:6;3511:2;3499:9;3490:7;3486:23;3482:32;3479:119;;;3517:79;;:::i;:::-;3479:119;3665:1;3654:9;3650:17;3637:31;3695:18;3687:6;3684:30;3681:117;;;3717:79;;:::i;:::-;3681:117;3822:63;3877:7;3868:6;3857:9;3853:22;3822:63;:::i;:::-;3812:73;;3608:287;3393:509;;;;:::o;3908:99::-;3960:6;3994:5;3988:12;3978:22;;3908:99;;;:::o;4013:169::-;4097:11;4131:6;4126:3;4119:19;4171:4;4166:3;4162:14;4147:29;;4013:169;;;;:::o;4188:246::-;4269:1;4279:113;4293:6;4290:1;4287:13;4279:113;;;4378:1;4373:3;4369:11;4363:18;4359:1;4354:3;4350:11;4343:39;4315:2;4312:1;4308:10;4303:15;;4279:113;;;4426:1;4417:6;4412:3;4408:16;4401:27;4250:184;4188:246;;;:::o;4440:377::-;4528:3;4556:39;4589:5;4556:39;:::i;:::-;4611:71;4675:6;4670:3;4611:71;:::i;:::-;4604:78;;4691:65;4749:6;4744:3;4737:4;4730:5;4726:16;4691:65;:::i;:::-;4781:29;4803:6;4781:29;:::i;:::-;4776:3;4772:39;4765:46;;4532:285;4440:377;;;;:::o;4823:77::-;4860:7;4889:5;4878:16;;4823:77;;;:::o;4906:118::-;4993:24;5011:5;4993:24;:::i;:::-;4988:3;4981:37;4906:118;;:::o;5030:423::-;5171:4;5209:2;5198:9;5194:18;5186:26;;5258:9;5252:4;5248:20;5244:1;5233:9;5229:17;5222:47;5286:78;5359:4;5350:6;5286:78;:::i;:::-;5278:86;;5374:72;5442:2;5431:9;5427:18;5418:6;5374:72;:::i;:::-;5030:423;;;;;:::o;5459:169::-;5599:21;5595:1;5587:6;5583:14;5576:45;5459:169;:::o;5634:366::-;5776:3;5797:67;5861:2;5856:3;5797:67;:::i;:::-;5790:74;;5873:93;5962:3;5873:93;:::i;:::-;5991:2;5986:3;5982:12;5975:19;;5634:366;;;:::o;6006:419::-;6172:4;6210:2;6199:9;6195:18;6187:26;;6259:9;6253:4;6249:20;6245:1;6234:9;6230:17;6223:47;6287:131;6413:4;6287:131;:::i;:::-;6279:139;;6006:419;;;:::o;6431:171::-;6571:23;6567:1;6559:6;6555:14;6548:47;6431:171;:::o;6608:366::-;6750:3;6771:67;6835:2;6830:3;6771:67;:::i;:::-;6764:74;;6847:93;6936:3;6847:93;:::i;:::-;6965:2;6960:3;6956:12;6949:19;;6608:366;;;:::o;6980:419::-;7146:4;7184:2;7173:9;7169:18;7161:26;;7233:9;7227:4;7223:20;7219:1;7208:9;7204:17;7197:47;7261:131;7387:4;7261:131;:::i;:::-;7253:139;;6980:419;;;:::o;7405:148::-;7507:11;7544:3;7529:18;;7405:148;;;;:::o;7559:390::-;7665:3;7693:39;7726:5;7693:39;:::i;:::-;7748:89;7830:6;7825:3;7748:89;:::i;:::-;7741:96;;7846:65;7904:6;7899:3;7892:4;7885:5;7881:16;7846:65;:::i;:::-;7936:6;7931:3;7927:16;7920:23;;7669:280;7559:390;;;;:::o;7955:275::-;8087:3;8109:95;8200:3;8191:6;8109:95;:::i;:::-;8102:102;;8221:3;8214:10;;7955:275;;;;:::o;8236:180::-;8284:77;8281:1;8274:88;8381:4;8378:1;8371:15;8405:4;8402:1;8395:15;8422:320;8466:6;8503:1;8497:4;8493:12;8483:22;;8550:1;8544:4;8540:12;8571:18;8561:81;;8627:4;8619:6;8615:17;8605:27;;8561:81;8689:2;8681:6;8678:14;8658:18;8655:38;8652:84;;8708:18;;:::i;:::-;8652:84;8473:269;8422:320;;;:::o;8748:141::-;8797:4;8820:3;8812:11;;8843:3;8840:1;8833:14;8877:4;8874:1;8864:18;8856:26;;8748:141;;;:::o;8895:93::-;8932:6;8979:2;8974;8967:5;8963:14;8959:23;8949:33;;8895:93;;;:::o;8994:107::-;9038:8;9088:5;9082:4;9078:16;9057:37;;8994:107;;;;:::o;9107:393::-;9176:6;9226:1;9214:10;9210:18;9249:97;9279:66;9268:9;9249:97;:::i;:::-;9367:39;9397:8;9386:9;9367:39;:::i;:::-;9355:51;;9439:4;9435:9;9428:5;9424:21;9415:30;;9488:4;9478:8;9474:19;9467:5;9464:30;9454:40;;9183:317;;9107:393;;;;;:::o;9506:60::-;9534:3;9555:5;9548:12;;9506:60;;;:::o;9572:142::-;9622:9;9655:53;9673:34;9682:24;9700:5;9682:24;:::i;:::-;9673:34;:::i;:::-;9655:53;:::i;:::-;9642:66;;9572:142;;;:::o;9720:75::-;9763:3;9784:5;9777:12;;9720:75;;;:::o;9801:269::-;9911:39;9942:7;9911:39;:::i;:::-;9972:91;10021:41;10045:16;10021:41;:::i;:::-;10013:6;10006:4;10000:11;9972:91;:::i;:::-;9966:4;9959:105;9877:193;9801:269;;;:::o;10076:73::-;10121:3;10076:73;:::o;10155:189::-;10232:32;;:::i;:::-;10273:65;10331:6;10323;10317:4;10273:65;:::i;:::-;10208:136;10155:189;;:::o;10350:186::-;10410:120;10427:3;10420:5;10417:14;10410:120;;;10481:39;10518:1;10511:5;10481:39;:::i;:::-;10454:1;10447:5;10443:13;10434:22;;10410:120;;;10350:186;;:::o;10542:543::-;10643:2;10638:3;10635:11;10632:446;;;10677:38;10709:5;10677:38;:::i;:::-;10761:29;10779:10;10761:29;:::i;:::-;10751:8;10747:44;10944:2;10932:10;10929:18;10926:49;;;10965:8;10950:23;;10926:49;10988:80;11044:22;11062:3;11044:22;:::i;:::-;11034:8;11030:37;11017:11;10988:80;:::i;:::-;10647:431;;10632:446;10542:543;;;:::o;11091:117::-;11145:8;11195:5;11189:4;11185:16;11164:37;;11091:117;;;;:::o;11214:169::-;11258:6;11291:51;11339:1;11335:6;11327:5;11324:1;11320:13;11291:51;:::i;:::-;11287:56;11372:4;11366;11362:15;11352:25;;11265:118;11214:169;;;;:::o;11388:295::-;11464:4;11610:29;11635:3;11629:4;11610:29;:::i;:::-;11602:37;;11672:3;11669:1;11665:11;11659:4;11656:21;11648:29;;11388:295;;;;:::o;11688:1395::-;11805:37;11838:3;11805:37;:::i;:::-;11907:18;11899:6;11896:30;11893:56;;;11929:18;;:::i;:::-;11893:56;11973:38;12005:4;11999:11;11973:38;:::i;:::-;12058:67;12118:6;12110;12104:4;12058:67;:::i;:::-;12152:1;12176:4;12163:17;;12208:2;12200:6;12197:14;12225:1;12220:618;;;;12882:1;12899:6;12896:77;;;12948:9;12943:3;12939:19;12933:26;12924:35;;12896:77;12999:67;13059:6;13052:5;12999:67;:::i;:::-;12993:4;12986:81;12855:222;12190:887;;12220:618;12272:4;12268:9;12260:6;12256:22;12306:37;12338:4;12306:37;:::i;:::-;12365:1;12379:208;12393:7;12390:1;12387:14;12379:208;;;12472:9;12467:3;12463:19;12457:26;12449:6;12442:42;12523:1;12515:6;12511:14;12501:24;;12570:2;12559:9;12555:18;12542:31;;12416:4;12413:1;12409:12;12404:17;;12379:208;;;12615:6;12606:7;12603:19;12600:179;;;12673:9;12668:3;12664:19;12658:26;12716:48;12758:4;12750:6;12746:17;12735:9;12716:48;:::i;:::-;12708:6;12701:64;12623:156;12600:179;12825:1;12821;12813:6;12809:14;12805:22;12799:4;12792:36;12227:611;;;12190:887;;11780:1303;;;11688:1395;;:::o;13089:624::-;13278:4;13316:2;13305:9;13301:18;13293:26;;13365:9;13359:4;13355:20;13351:1;13340:9;13336:17;13329:47;13393:78;13466:4;13457:6;13393:78;:::i;:::-;13385:86;;13518:9;13512:4;13508:20;13503:2;13492:9;13488:18;13481:48;13546:78;13619:4;13610:6;13546:78;:::i;:::-;13538:86;;13634:72;13702:2;13691:9;13687:18;13678:6;13634:72;:::i;:::-;13089:624;;;;;;:::o" + }, + "methodIdentifiers": { + "oracleValues(string)": "ed5ae681", + "setValue(string,string)": "ec86cfad" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"ValueSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"oracleValues\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Oracle/Oracle.sol\":\"Oracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Oracle/Oracle.sol\":{\"keccak256\":\"0xadb34d2475c898e17018810c58b50b61007fab982a4de9a5aa4c3e3392a295d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b10fe3f1dc47e792cf254f13d36f5e8121cf70ba28aaca90143bb8c10af675f\",\"dweb:/ipfs/Qmaa7ZQmFXmPYSDV5RiJ9tPmB2VxTxvQkkbyuzPqEipzQa\"]}},\"version\":1}" + } + }, + "contracts/ThreeSwap.sol": { + "IOracle": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "oracleValues", + "outputs": [ + { + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "oracleValues(string)": "ed5ae681" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"oracleValues\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ThreeSwap.sol\":\"IOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"contracts/ThreeSwap.sol\":{\"keccak256\":\"0x56cb1d9ad8f7832c6b780837768d1ff8a7fdd6e564570c7f5ce24f1082b531da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b58cd7abfd7df7f48881118628c682cc045a06bd072d27c362f2781b7128304d\",\"dweb:/ipfs/QmRPa7HP9689gzw4hZuCCFsdvTCEg3nd2KtUtDz32RGMna\"]}},\"version\":1}" + }, + "ThreeSwap": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_wbtc", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "_weth", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "_usdc", + "type": "address" + }, + { + "internalType": "contract IOracle", + "name": "_oracle", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "DECIMALS", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FIXED_USDC_PRICE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oracle", + "outputs": [ + { + "internalType": "contract IOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "oracleKeys", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "enum ThreeSwap.TokenType", + "name": "from", + "type": "uint8" + }, + { + "internalType": "enum ThreeSwap.TokenType", + "name": "to", + "type": "uint8" + } + ], + "name": "swap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "tokens", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1103": { + "entryPoint": null, + "id": 1103, + "parameterSlots": 4, + "returnSlots": 0 + }, + "abi_decode_t_contract$_IERC20_$877_fromMemory": { + "entryPoint": 746, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_contract$_IOracle_$1015_fromMemory": { + "entryPoint": 815, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IOracle_$1015_fromMemory": { + "entryPoint": 838, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1204, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1046, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1525, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 680, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IERC20_$877": { + "entryPoint": 700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_contract$_IOracle_$1015": { + "entryPoint": 769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 648, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1340, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1486, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1360, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1680, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1225, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1650, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 1350, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1618, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x21": { + "entryPoint": 952, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 1104, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 999, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 1057, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1400, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 643, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_dynamic": { + "entryPoint": 1241, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1605, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1458, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1254, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1410, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IERC20_$877": { + "entryPoint": 720, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_contract$_IOracle_$1015": { + "entryPoint": 789, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1453, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:8014:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:12", + "type": "" + } + ], + "src": "7:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:12", + "type": "" + } + ], + "src": "334:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:12", + "type": "" + } + ], + "src": "466:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "627:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "637:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "666:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "648:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "648:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "637:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IERC20_$877", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "609:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "619:7:12", + "type": "" + } + ], + "src": "568:110:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "741:93:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "812:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "821:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "824:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "814:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "814:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "814:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "764:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "803:5:12" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IERC20_$877", + "nodeType": "YulIdentifier", + "src": "771:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "771:38:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "761:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "761:49:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "754:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "754:57:12" + }, + "nodeType": "YulIf", + "src": "751:77:12" + } + ] + }, + "name": "validator_revert_t_contract$_IERC20_$877", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "734:5:12", + "type": "" + } + ], + "src": "684:150:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "917:94:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "927:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "942:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "936:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "936:13:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "927:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "999:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IERC20_$877", + "nodeType": "YulIdentifier", + "src": "958:40:12" + }, + "nodeType": "YulFunctionCall", + "src": "958:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "958:47:12" + } + ] + }, + "name": "abi_decode_t_contract$_IERC20_$877_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "895:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "903:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "911:5:12", + "type": "" + } + ], + "src": "840:171:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1078:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1088:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1117:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1099:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1099:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1088:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_contract$_IOracle_$1015", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1060:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1070:7:12", + "type": "" + } + ], + "src": "1017:112:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1194:95:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1267:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1276:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1279:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1269:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1269:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1269:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1217:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1258:5:12" + } + ], + "functionName": { + "name": "cleanup_t_contract$_IOracle_$1015", + "nodeType": "YulIdentifier", + "src": "1224:33:12" + }, + "nodeType": "YulFunctionCall", + "src": "1224:40:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1214:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1214:51:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1207:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1207:59:12" + }, + "nodeType": "YulIf", + "src": "1204:79:12" + } + ] + }, + "name": "validator_revert_t_contract$_IOracle_$1015", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1187:5:12", + "type": "" + } + ], + "src": "1135:154:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1374:96:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1384:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1399:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1393:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "1393:13:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1384:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1458:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_contract$_IOracle_$1015", + "nodeType": "YulIdentifier", + "src": "1415:42:12" + }, + "nodeType": "YulFunctionCall", + "src": "1415:49:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1415:49:12" + } + ] + }, + "name": "abi_decode_t_contract$_IOracle_$1015_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1352:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1360:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1368:5:12", + "type": "" + } + ], + "src": "1295:175:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1662:750:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1709:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1711:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "1711:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1711:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1683:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1692:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1679:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1679:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1704:3:12", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1675:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1675:33:12" + }, + "nodeType": "YulIf", + "src": "1672:120:12" + }, + { + "nodeType": "YulBlock", + "src": "1802:142:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1817:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1831:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1821:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1846:88:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1906:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1917:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1902:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1902:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1926:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$877_fromMemory", + "nodeType": "YulIdentifier", + "src": "1856:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "1856:78:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1846:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1954:143:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1969:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1983:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1973:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1999:88:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2059:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2070:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2055:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2055:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2079:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$877_fromMemory", + "nodeType": "YulIdentifier", + "src": "2009:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "2009:78:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1999:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2107:143:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2122:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2136:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2126:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2152:88:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2212:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2223:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2208:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2208:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2232:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IERC20_$877_fromMemory", + "nodeType": "YulIdentifier", + "src": "2162:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "2162:78:12" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2152:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2260:145:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2275:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2289:2:12", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2279:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2305:90:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2367:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2378:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2363:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2363:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2387:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_contract$_IOracle_$1015_fromMemory", + "nodeType": "YulIdentifier", + "src": "2315:47:12" + }, + "nodeType": "YulFunctionCall", + "src": "2315:80:12" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "2305:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IOracle_$1015_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1608:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1619:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1631:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1639:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1647:6:12", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1655:6:12", + "type": "" + } + ], + "src": "1476:936:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2463:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2466:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2456:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2456:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2456:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2560:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2563:4:12", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2553:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2553:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2553:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2584:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2587:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2577:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2577:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2577:15:12" + } + ] + }, + "name": "panic_error_0x21", + "nodeType": "YulFunctionDefinition", + "src": "2418:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2632:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2649:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2652:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2642:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2642:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2642:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2746:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2749:4:12", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2739:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2739:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2739:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2770:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2773:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2763:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2763:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2763:15:12" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "2604:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2849:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2860:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2876:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2870:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2870:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2860:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2832:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2842:6:12", + "type": "" + } + ], + "src": "2790:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2923:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2940:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2943:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2933:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2933:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2933:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3037:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3040:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3030:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3030:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3030:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3061:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3064:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3054:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3054:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3054:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "2895:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3109:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3126:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3129:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3119:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3119:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3119:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3223:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3226:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3216:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3216:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3216:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3247:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3250:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3240:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3240:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3240:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "3081:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3318:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3328:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3342:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3348:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3338:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3338:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3328:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3359:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3389:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3395:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3385:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3385:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "3363:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3436:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3450:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3464:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3472:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3460:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3460:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3450:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3416:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3409:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3409:26:12" + }, + "nodeType": "YulIf", + "src": "3406:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3539:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "3553:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "3553:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3553:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "3503:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3526:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3534:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3523:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3523:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3500:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3500:38:12" + }, + "nodeType": "YulIf", + "src": "3497:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3302:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3311:6:12", + "type": "" + } + ], + "src": "3267:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3647:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3657:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "3665:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3657:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3685:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "3688:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3678:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3678:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3678:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "3701:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3719:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3722:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "3709:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "3709:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3701:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "3634:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3642:4:12", + "type": "" + } + ], + "src": "3593:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3784:49:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3794:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3812:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3819:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3808:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3808:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3824:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "3804:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3804:23:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3794:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3767:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3777:6:12", + "type": "" + } + ], + "src": "3740:93:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3892:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3902:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3927:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3933:5:12" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "3923:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3923:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3902:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3867:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3873:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3883:8:12", + "type": "" + } + ], + "src": "3839:107:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4028:317:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4038:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "4059:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4071:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4055:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4055:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "4042:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4082:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4113:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4124:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4094:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "4094:97:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "4086:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4200:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "4231:9:12" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4242:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "4212:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "4212:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4200:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4260:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4273:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4284:4:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4280:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4280:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4269:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4269:21:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4260:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4299:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4312:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "4323:8:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "4333:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4319:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4319:19:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "4309:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4309:30:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4299:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3989:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "3996:10:12", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "4008:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4021:6:12", + "type": "" + } + ], + "src": "3952:393:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4396:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4406:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4417:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4406:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4378:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4388:7:12", + "type": "" + } + ], + "src": "4351:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4483:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "4476:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4452:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "4462:3:12", + "type": "" + } + ], + "src": "4434:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4560:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4570:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4628:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4610:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4610:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "4601:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "4601:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4583:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "4583:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "4570:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4540:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "4550:9:12", + "type": "" + } + ], + "src": "4500:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4695:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4705:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4712:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "4705:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4681:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "4691:3:12", + "type": "" + } + ], + "src": "4648:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4805:193:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4815:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "4870:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "4839:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "4839:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "4819:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4894:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4934:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4928:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4928:11:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4941:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "4973:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "4949:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "4949:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "4900:27:12" + }, + "nodeType": "YulFunctionCall", + "src": "4900:91:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4887:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4887:105:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4887:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "4782:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4788:6:12", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "4796:7:12", + "type": "" + } + ], + "src": "4729:269:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5053:24:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5063:8:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5070:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5063:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5049:3:12", + "type": "" + } + ], + "src": "5004:73:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5136:136:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5146:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "5160:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "5160:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "5150:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5245:4:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5251:6:12" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "5259:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "5201:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5201:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5201:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "5122:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5128:6:12", + "type": "" + } + ], + "src": "5083:189:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5328:136:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5395:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5439:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5446:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "5409:29:12" + }, + "nodeType": "YulFunctionCall", + "src": "5409:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5409:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5348:5:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5355:3:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5345:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "5345:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5360:26:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5362:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5375:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5382:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5371:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5371:13:12" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "5362:5:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5342:2:12", + "statements": [] + }, + "src": "5338:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "5316:5:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5323:3:12", + "type": "" + } + ], + "src": "5278:186:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5549:464:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5575:431:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5589:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "5637:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "5605:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "5605:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "5593:8:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5656:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "5679:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "5707:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "5689:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5689:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5675:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5675:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "5660:11:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5876:27:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5878:23:12", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "5893:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "5878:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "5860:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5872:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5857:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "5857:18:12" + }, + "nodeType": "YulIf", + "src": "5854:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "5945:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "5962:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "5990:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "5972:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5972:22:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5958:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5958:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "5916:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "5916:80:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5916:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "5566:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5571:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5563:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "5563:11:12" + }, + "nodeType": "YulIf", + "src": "5560:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "5525:5:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "5532:3:12", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "5537:10:12", + "type": "" + } + ], + "src": "5470:543:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6082:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6092:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "6117:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6123:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "6113:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6113:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "6092:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "6057:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6063:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "6073:8:12", + "type": "" + } + ], + "src": "6019:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6193:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6203:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6252:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "6255:5:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6248:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6248:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6267:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6263:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6263:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "6219:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "6219:51:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "6215:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6215:56:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "6207:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6280:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6294:4:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "6300:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6290:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6290:15:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "6280:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6170:4:12", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "6176:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "6186:6:12", + "type": "" + } + ], + "src": "6142:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6397:214:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6530:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6557:4:12" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6563:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "6538:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "6538:29:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6530:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6576:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6587:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6597:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "6600:3:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6593:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6593:11:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "6584:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6584:21:12" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "6576:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6378:4:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "6384:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "6392:4:12", + "type": "" + } + ], + "src": "6316:295:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6708:1303:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6719:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "6766:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6733:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "6733:37:12" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "6723:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6855:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "6857:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "6857:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6857:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "6827:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6835:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6824:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6824:30:12" + }, + "nodeType": "YulIf", + "src": "6821:56:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6887:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6933:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "6927:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "6927:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "6901:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "6901:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "6891:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7032:4:12" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "7038:6:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7046:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "6986:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "6986:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6986:67:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7063:18:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7080:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "7067:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7091:17:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7104:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7091:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7155:611:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7169:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7188:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7200:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7196:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7196:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7184:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7184:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "7173:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7220:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7266:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7234:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "7234:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "7224:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7284:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7293:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "7288:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7352:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7377:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7395:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7400:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7391:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7391:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7385:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "7385:26:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7370:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7370:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7370:42:12" + }, + { + "nodeType": "YulAssignment", + "src": "7429:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7443:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7451:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7439:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7439:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7429:6:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7470:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7487:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7498:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7483:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7483:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7470:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7318:1:12" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7321:7:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7315:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7315:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "7330:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7332:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7341:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7344:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7337:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7337:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "7332:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "7311:3:12", + "statements": [] + }, + "src": "7307:208:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7551:156:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7569:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7596:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7601:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7592:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7592:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7586:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "7586:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "7573:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "7636:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "7663:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7678:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7686:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7674:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7674:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "7644:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "7644:48:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7629:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7629:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7629:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "7534:7:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7543:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7531:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7531:19:12" + }, + "nodeType": "YulIf", + "src": "7528:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7727:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7741:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7749:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7737:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7737:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7753:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7733:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7733:22:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7720:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7720:36:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7720:36:12" + } + ] + }, + "nodeType": "YulCase", + "src": "7148:618:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7153:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7783:222:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7797:14:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7810:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7801:5:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7834:67:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7852:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "7871:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "7876:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7867:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7867:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7861:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "7861:26:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7852:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7827:6:12" + }, + "nodeType": "YulIf", + "src": "7824:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "7921:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7980:5:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7987:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "7927:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "7927:67:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "7914:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7914:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7914:81:12" + } + ] + }, + "nodeType": "YulCase", + "src": "7775:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "7128:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7136:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7125:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7125:14:12" + }, + "nodeType": "YulSwitch", + "src": "7118:887:12" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6697:4:12", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "6703:3:12", + "type": "" + } + ], + "src": "6616:1395:12" + } + ] + }, + "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 cleanup_t_contract$_IERC20_$877(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$877(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$877(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$877_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IERC20_$877(value)\n }\n\n function cleanup_t_contract$_IOracle_$1015(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IOracle_$1015(value) {\n if iszero(eq(value, cleanup_t_contract$_IOracle_$1015(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IOracle_$1015_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IOracle_$1015(value)\n }\n\n function abi_decode_tuple_t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IERC20_$877t_contract$_IOracle_$1015_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_IERC20_$877_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_contract$_IERC20_$877_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_contract$_IERC20_$877_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_contract$_IOracle_$1015_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\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": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b5060405162001c3c38038062001c3c833981810160405281019062000037919062000346565b83600080600281111562000050576200004f620003b8565b5b60038110620000645762000063620003e7565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600060016002811115620000bd57620000bc620003b8565b5b60038110620000d157620000d0620003e7565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000600280811115620001295762000128620003b8565b5b600381106200013d576200013c620003e7565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600781526020017f4254432f5553440000000000000000000000000000000000000000000000000081525060046000600281106200020b576200020a620003e7565b5b0190816200021a919062000690565b506040518060400160405280600781526020017f4554482f555344000000000000000000000000000000000000000000000000008152506004600160028110620002695762000268620003e7565b5b01908162000278919062000690565b505050505062000777565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b58262000288565b9050919050565b6000620002c982620002a8565b9050919050565b620002db81620002bc565b8114620002e757600080fd5b50565b600081519050620002fb81620002d0565b92915050565b60006200030e82620002a8565b9050919050565b620003208162000301565b81146200032c57600080fd5b50565b600081519050620003408162000315565b92915050565b6000806000806080858703121562000363576200036262000283565b5b60006200037387828801620002ea565b94505060206200038687828801620002ea565b93505060406200039987828801620002ea565b9250506060620003ac878288016200032f565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200049857607f821691505b602082108103620004ae57620004ad62000450565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004d9565b620005248683620004d9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005716200056b62000565846200053c565b62000546565b6200053c565b9050919050565b6000819050919050565b6200058d8362000550565b620005a56200059c8262000578565b848454620004e6565b825550505050565b600090565b620005bc620005ad565b620005c981848462000582565b505050565b5b81811015620005f157620005e5600082620005b2565b600181019050620005cf565b5050565b601f82111562000640576200060a81620004b4565b6200061584620004c9565b8101602085101562000625578190505b6200063d6200063485620004c9565b830182620005ce565b50505b505050565b600082821c905092915050565b6000620006656000198460080262000645565b1980831691505092915050565b600062000680838362000652565b9150826002028217905092915050565b6200069b8262000416565b67ffffffffffffffff811115620006b757620006b662000421565b5b620006c382546200047f565b620006d0828285620005f5565b600060209050601f831160018114620007085760008415620006f3578287015190505b620006ff858262000672565b8655506200076f565b601f1984166200071886620004b4565b60005b8281101562000742578489015182556001820191506020850194506020810190506200071b565b868310156200076257848901516200075e601f89168262000652565b8355505b6001600288020188555050505b505050505050565b6114b580620007876000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632e0f2625146100675780634f64b2be1461008557806371814807146100b55780637dc0d1d0146100d3578063968d5a25146100f1578063a562f45714610121575b600080fd5b61006f610151565b60405161007c91906109be565b60405180910390f35b61009f600480360381019061009a9190610a19565b610156565b6040516100ac9190610ac5565b60405180910390f35b6100bd61018c565b6040516100ca91906109be565b60405180910390f35b6100db6101a9565b6040516100e89190610b01565b60405180910390f35b61010b60048036038101906101069190610b41565b6101cf565b60405161011891906109be565b60405180910390f35b61013b60048036038101906101369190610a19565b61049b565b6040516101489190610c24565b60405180910390f35b601281565b6000816003811061016657600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012600a61019a9190610da8565b60016101a69190610df3565b81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008160028111156101e4576101e3610e35565b5b8360028111156101f7576101f6610e35565b5b03610237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022e90610eb0565b60405180910390fd5b60006102428461053e565b9050600061024f8461053e565b90506000816012600a6102629190610da8565b848961026e9190610df3565b6102789190610df3565b6102829190610eff565b9050600086600281111561029957610298610e35565b5b600381106102aa576102a9610f30565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b815260040161030893929190610f80565b6020604051808303816000875af1158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190610fef565b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038190611068565b60405180910390fd5b600085600281111561039f5761039e610e35565b5b600381106103b0576103af610f30565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161040c929190611088565b6020604051808303816000875af115801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190610fef565b61048e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048590611068565b60405180910390fd5b8093505050509392505050565b600481600281106104ab57600080fd5b0160009150905080546104bd906110e0565b80601f01602080910402602001604051908101604052809291908181526020018280546104e9906110e0565b80156105365780601f1061050b57610100808354040283529160200191610536565b820191906000526020600020905b81548152906001019060200180831161051957829003601f168201915b505050505081565b600060028081111561055357610552610e35565b5b82600281111561056657610565610e35565b5b0361058c576012600a6105799190610da8565b60016105859190610df3565b90506107b7565b600060028111156105a05761059f610e35565b5b8260028111156105b3576105b2610e35565b5b03610684576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed5ae681600460006002811061060d5761060c610f30565b5b016040518263ffffffff1660e01b815260040161062a91906111aa565b600060405180830381865afa158015610647573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106709190611307565b50905061067c816107bc565b9150506107b7565b6001600281111561069857610697610e35565b5b8260028111156106ab576106aa610e35565b5b0361077c576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed5ae681600460016002811061070557610704610f30565b5b016040518263ffffffff1660e01b815260040161072291906111aa565b600060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107689190611307565b509050610774816107bc565b9150506107b7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae906113af565b60405180910390fd5b919050565b6000808290506000806000805b845181101561093357603060f81b8582815181106107ea576107e9610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156108685750603960f81b85828151811061083857610837610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b156108d057603085828151811061088257610881610f30565b5b602001015160f81c60f81b60f81c60ff1661089d91906113cf565b600a856108aa9190610df3565b6108b49190611403565b935082156108cb5781806108c790611437565b9250505b610920565b602e60f81b8582815181106108e8576108e7610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361091f57600192505b5b808061092b90611437565b9150506107c9565b5060128110156109685780601261094a91906113cf565b600a6109569190610da8565b836109619190610df3565b9250610999565b60128111156109985760128161097e91906113cf565b600a61098a9190610da8565b836109959190610eff565b92505b5b82945050505050919050565b6000819050919050565b6109b8816109a5565b82525050565b60006020820190506109d360008301846109af565b92915050565b6000604051905090565b600080fd5b600080fd5b6109f6816109a5565b8114610a0157600080fd5b50565b600081359050610a13816109ed565b92915050565b600060208284031215610a2f57610a2e6109e3565b5b6000610a3d84828501610a04565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a8b610a86610a8184610a46565b610a66565b610a46565b9050919050565b6000610a9d82610a70565b9050919050565b6000610aaf82610a92565b9050919050565b610abf81610aa4565b82525050565b6000602082019050610ada6000830184610ab6565b92915050565b6000610aeb82610a92565b9050919050565b610afb81610ae0565b82525050565b6000602082019050610b166000830184610af2565b92915050565b60038110610b2957600080fd5b50565b600081359050610b3b81610b1c565b92915050565b600080600060608486031215610b5a57610b596109e3565b5b6000610b6886828701610a04565b9350506020610b7986828701610b2c565b9250506040610b8a86828701610b2c565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bce578082015181840152602081019050610bb3565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bf682610b94565b610c008185610b9f565b9350610c10818560208601610bb0565b610c1981610bda565b840191505092915050565b60006020820190508181036000830152610c3e8184610beb565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610ccc57808604811115610ca857610ca7610c46565b5b6001851615610cb75780820291505b8081029050610cc585610c75565b9450610c8c565b94509492505050565b600082610ce55760019050610da1565b81610cf35760009050610da1565b8160018114610d095760028114610d1357610d42565b6001915050610da1565b60ff841115610d2557610d24610c46565b5b8360020a915084821115610d3c57610d3b610c46565b5b50610da1565b5060208310610133831016604e8410600b8410161715610d775782820a905083811115610d7257610d71610c46565b5b610da1565b610d848484846001610c82565b92509050818404811115610d9b57610d9a610c46565b5b81810290505b9392505050565b6000610db3826109a5565b9150610dbe836109a5565b9250610deb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610cd5565b905092915050565b6000610dfe826109a5565b9150610e09836109a5565b9250828202610e17816109a5565b91508282048414831517610e2e57610e2d610c46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f43616e6e6f742073776170207468652073616d6520746f6b656e000000000000600082015250565b6000610e9a601a83610b9f565b9150610ea582610e64565b602082019050919050565b60006020820190508181036000830152610ec981610e8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610f0a826109a5565b9150610f15836109a5565b925082610f2557610f24610ed0565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610f6a82610a46565b9050919050565b610f7a81610f5f565b82525050565b6000606082019050610f956000830186610f71565b610fa26020830185610f71565b610faf60408301846109af565b949350505050565b60008115159050919050565b610fcc81610fb7565b8114610fd757600080fd5b50565b600081519050610fe981610fc3565b92915050565b600060208284031215611005576110046109e3565b5b600061101384828501610fda565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611052601583610b9f565b915061105d8261101c565b602082019050919050565b6000602082019050818103600083015261108181611045565b9050919050565b600060408201905061109d6000830185610f71565b6110aa60208301846109af565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110f857607f821691505b60208210810361110b5761110a6110b1565b5b50919050565b60008190508160005260206000209050919050565b60008154611133816110e0565b61113d8186610b9f565b94506001821660008114611158576001811461116e576111a1565b60ff1983168652811515602002860193506111a1565b61117785611111565b60005b838110156111995781548189015260018201915060208101905061117a565b808801955050505b50505092915050565b600060208201905081810360008301526111c48184611126565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61120e82610bda565b810181811067ffffffffffffffff8211171561122d5761122c6111d6565b5b80604052505050565b60006112406109d9565b905061124c8282611205565b919050565b600067ffffffffffffffff82111561126c5761126b6111d6565b5b61127582610bda565b9050602081019050919050565b600061129561129084611251565b611236565b9050828152602081018484840111156112b1576112b06111d1565b5b6112bc848285610bb0565b509392505050565b600082601f8301126112d9576112d86111cc565b5b81516112e9848260208601611282565b91505092915050565b600081519050611301816109ed565b92915050565b6000806040838503121561131e5761131d6109e3565b5b600083015167ffffffffffffffff81111561133c5761133b6109e8565b5b611348858286016112c4565b9250506020611359858286016112f2565b9150509250929050565b7f556e737570706f7274656420746f6b656e207479706500000000000000000000600082015250565b6000611399601683610b9f565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b60006113da826109a5565b91506113e5836109a5565b92508282039050818111156113fd576113fc610c46565b5b92915050565b600061140e826109a5565b9150611419836109a5565b925082820190508082111561143157611430610c46565b5b92915050565b6000611442826109a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147457611473610c46565b5b60018201905091905056fea2646970667358221220d3004afbc4ef7633b1e63350f81931254ec0b3f8270ced4b64c7b104c9b526c664736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1C3C CODESIZE SUB DUP1 PUSH3 0x1C3C DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x346 JUMP JUMPDEST DUP4 PUSH1 0x0 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x50 JUMPI PUSH3 0x4F PUSH3 0x3B8 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH3 0x64 JUMPI PUSH3 0x63 PUSH3 0x3E7 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0xBD JUMPI PUSH3 0xBC PUSH3 0x3B8 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH3 0xD1 JUMPI PUSH3 0xD0 PUSH3 0x3E7 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH3 0x129 JUMPI PUSH3 0x128 PUSH3 0x3B8 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH3 0x13D JUMPI PUSH3 0x13C PUSH3 0x3E7 JUMP JUMPDEST JUMPDEST ADD 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 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4254432F55534400000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 DUP2 LT PUSH3 0x20B JUMPI PUSH3 0x20A PUSH3 0x3E7 JUMP JUMPDEST JUMPDEST ADD SWAP1 DUP2 PUSH3 0x21A SWAP2 SWAP1 PUSH3 0x690 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4554482F55534400000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x4 PUSH1 0x1 PUSH1 0x2 DUP2 LT PUSH3 0x269 JUMPI PUSH3 0x268 PUSH3 0x3E7 JUMP JUMPDEST JUMPDEST ADD SWAP1 DUP2 PUSH3 0x278 SWAP2 SWAP1 PUSH3 0x690 JUMP JUMPDEST POP POP POP POP POP PUSH3 0x777 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B5 DUP3 PUSH3 0x288 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C9 DUP3 PUSH3 0x2A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x2DB DUP2 PUSH3 0x2BC JUMP JUMPDEST DUP2 EQ PUSH3 0x2E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x2FB DUP2 PUSH3 0x2D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x30E DUP3 PUSH3 0x2A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x320 DUP2 PUSH3 0x301 JUMP JUMPDEST DUP2 EQ PUSH3 0x32C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x340 DUP2 PUSH3 0x315 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x363 JUMPI PUSH3 0x362 PUSH3 0x283 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x373 DUP8 DUP3 DUP9 ADD PUSH3 0x2EA JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH3 0x386 DUP8 DUP3 DUP9 ADD PUSH3 0x2EA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH3 0x399 DUP8 DUP3 DUP9 ADD PUSH3 0x2EA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH3 0x3AC DUP8 DUP3 DUP9 ADD PUSH3 0x32F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 0x498 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x4AE JUMPI PUSH3 0x4AD PUSH3 0x450 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 0x518 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x4D9 JUMP JUMPDEST PUSH3 0x524 DUP7 DUP4 PUSH3 0x4D9 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 0x571 PUSH3 0x56B PUSH3 0x565 DUP5 PUSH3 0x53C JUMP JUMPDEST PUSH3 0x546 JUMP JUMPDEST PUSH3 0x53C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x58D DUP4 PUSH3 0x550 JUMP JUMPDEST PUSH3 0x5A5 PUSH3 0x59C DUP3 PUSH3 0x578 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x4E6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x5BC PUSH3 0x5AD JUMP JUMPDEST PUSH3 0x5C9 DUP2 DUP5 DUP5 PUSH3 0x582 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x5F1 JUMPI PUSH3 0x5E5 PUSH1 0x0 DUP3 PUSH3 0x5B2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x5CF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x640 JUMPI PUSH3 0x60A DUP2 PUSH3 0x4B4 JUMP JUMPDEST PUSH3 0x615 DUP5 PUSH3 0x4C9 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x625 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x63D PUSH3 0x634 DUP6 PUSH3 0x4C9 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x5CE 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 0x665 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x645 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x680 DUP4 DUP4 PUSH3 0x652 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x69B DUP3 PUSH3 0x416 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x6B7 JUMPI PUSH3 0x6B6 PUSH3 0x421 JUMP JUMPDEST JUMPDEST PUSH3 0x6C3 DUP3 SLOAD PUSH3 0x47F JUMP JUMPDEST PUSH3 0x6D0 DUP3 DUP3 DUP6 PUSH3 0x5F5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x708 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x6F3 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x6FF DUP6 DUP3 PUSH3 0x672 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x76F JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x718 DUP7 PUSH3 0x4B4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x742 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 0x71B JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x762 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x75E PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x652 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 0x14B5 DUP1 PUSH3 0x787 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E0F2625 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x4F64B2BE EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x71814807 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x968D5A25 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0xA562F457 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0x156 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0xAC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBD PUSH2 0x18C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xB41 JUMP JUMPDEST PUSH2 0x1CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0x49B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0xC24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x12 PUSH1 0xA PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1E4 JUMPI PUSH2 0x1E3 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x237 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0xEB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x242 DUP5 PUSH2 0x53E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x24F DUP5 PUSH2 0x53E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x12 PUSH1 0xA PUSH2 0x262 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP5 DUP10 PUSH2 0x26E SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x278 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x299 JUMPI PUSH2 0x298 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP11 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x308 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0xE35 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x3B0 JUMPI PUSH2 0x3AF PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40C SWAP3 SWAP2 SWAP1 PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44F SWAP2 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x485 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x4BD SWAP1 PUSH2 0x10E0 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 0x4E9 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x536 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x50B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x536 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 0x519 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x566 JUMPI PUSH2 0x565 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x58C JUMPI PUSH1 0x12 PUSH1 0xA PUSH2 0x579 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x585 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST SWAP1 POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5A0 JUMPI PUSH2 0x59F PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5B3 JUMPI PUSH2 0x5B2 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x684 JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xED5AE681 PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 DUP2 LT PUSH2 0x60D JUMPI PUSH2 0x60C PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62A SWAP2 SWAP1 PUSH2 0x11AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x670 SWAP2 SWAP1 PUSH2 0x1307 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x67C DUP2 PUSH2 0x7BC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x698 JUMPI PUSH2 0x697 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6AB JUMPI PUSH2 0x6AA PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x77C JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xED5AE681 PUSH1 0x4 PUSH1 0x1 PUSH1 0x2 DUP2 LT PUSH2 0x705 JUMPI PUSH2 0x704 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0x11AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x768 SWAP2 SWAP1 PUSH2 0x1307 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x7BC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP1 PUSH2 0x13AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x933 JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7EA JUMPI PUSH2 0x7E9 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND LT ISZERO DUP1 ISZERO PUSH2 0x868 JUMPI POP PUSH1 0x39 PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x838 JUMPI PUSH2 0x837 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND GT ISZERO JUMPDEST ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x30 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x882 JUMPI PUSH2 0x881 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH1 0xF8 SHR PUSH1 0xFF AND PUSH2 0x89D SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA DUP6 PUSH2 0x8AA SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x8B4 SWAP2 SWAP1 PUSH2 0x1403 JUMP JUMPDEST SWAP4 POP DUP3 ISZERO PUSH2 0x8CB JUMPI DUP2 DUP1 PUSH2 0x8C7 SWAP1 PUSH2 0x1437 JUMP JUMPDEST SWAP3 POP POP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH1 0x2E PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x8E8 JUMPI PUSH2 0x8E7 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SUB PUSH2 0x91F JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0x92B SWAP1 PUSH2 0x1437 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7C9 JUMP JUMPDEST POP PUSH1 0x12 DUP2 LT ISZERO PUSH2 0x968 JUMPI DUP1 PUSH1 0x12 PUSH2 0x94A SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA PUSH2 0x956 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP4 PUSH2 0x961 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST SWAP3 POP PUSH2 0x999 JUMP JUMPDEST PUSH1 0x12 DUP2 GT ISZERO PUSH2 0x998 JUMPI PUSH1 0x12 DUP2 PUSH2 0x97E SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA PUSH2 0x98A SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP4 PUSH2 0x995 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST SWAP3 POP JUMPDEST JUMPDEST DUP3 SWAP5 POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B8 DUP2 PUSH2 0x9A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9F6 DUP2 PUSH2 0x9A5 JUMP JUMPDEST DUP2 EQ PUSH2 0xA01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA13 DUP2 PUSH2 0x9ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA2F JUMPI PUSH2 0xA2E PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA3D DUP5 DUP3 DUP6 ADD PUSH2 0xA04 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8B PUSH2 0xA86 PUSH2 0xA81 DUP5 PUSH2 0xA46 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH2 0xA46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9D DUP3 PUSH2 0xA70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAF DUP3 PUSH2 0xA92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xABF DUP2 PUSH2 0xAA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 PUSH2 0xA92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAFB DUP2 PUSH2 0xAE0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB16 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB3B DUP2 PUSH2 0xB1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB5A JUMPI PUSH2 0xB59 PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB68 DUP7 DUP3 DUP8 ADD PUSH2 0xA04 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB79 DUP7 DUP3 DUP8 ADD PUSH2 0xB2C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB8A DUP7 DUP3 DUP8 ADD PUSH2 0xB2C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0xBCE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBB3 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 0xBF6 DUP3 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0xC00 DUP2 DUP6 PUSH2 0xB9F JUMP JUMPDEST SWAP4 POP PUSH2 0xC10 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xBB0 JUMP JUMPDEST PUSH2 0xC19 DUP2 PUSH2 0xBDA 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 0xC3E DUP2 DUP5 PUSH2 0xBEB JUMP JUMPDEST SWAP1 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 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xCCC JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xCA8 JUMPI PUSH2 0xCA7 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xCB7 JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH2 0xCC5 DUP6 PUSH2 0xC75 JUMP JUMPDEST SWAP5 POP PUSH2 0xC8C JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xCE5 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0xDA1 JUMP JUMPDEST DUP2 PUSH2 0xCF3 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0xDA1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD09 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD13 JUMPI PUSH2 0xD42 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD25 JUMPI PUSH2 0xD24 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD3C JUMPI PUSH2 0xD3B PUSH2 0xC46 JUMP JUMPDEST JUMPDEST POP PUSH2 0xDA1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xD77 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0xD72 JUMPI PUSH2 0xD71 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0xD84 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xC82 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0xC46 JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB3 DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xDBE DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP PUSH2 0xDEB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xE09 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xE17 DUP2 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xE2E JUMPI PUSH2 0xE2D PUSH2 0xC46 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x43616E6E6F742073776170207468652073616D6520746F6B656E000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9A PUSH1 0x1A DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0xEA5 DUP3 PUSH2 0xE64 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 0xEC9 DUP2 PUSH2 0xE8D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF0A DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF15 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xF25 JUMPI PUSH2 0xF24 PUSH2 0xED0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 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 PUSH2 0xF6A DUP3 PUSH2 0xA46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF7A DUP2 PUSH2 0xF5F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xF95 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0xFA2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0xFAF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCC DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xFE9 DUP2 PUSH2 0xFC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1004 PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1013 DUP5 DUP3 DUP6 ADD PUSH2 0xFDA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x546F6B656E207472616E73666572206661696C65640000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1052 PUSH1 0x15 DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0x105D DUP3 PUSH2 0x101C 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 0x1081 DUP2 PUSH2 0x1045 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x109D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0x10AA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP4 SWAP3 POP POP 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 0x10F8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x110B JUMPI PUSH2 0x110A PUSH2 0x10B1 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 DUP2 SLOAD PUSH2 0x1133 DUP2 PUSH2 0x10E0 JUMP JUMPDEST PUSH2 0x113D DUP2 DUP7 PUSH2 0xB9F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1158 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x116E JUMPI PUSH2 0x11A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x11A1 JUMP JUMPDEST PUSH2 0x1177 DUP6 PUSH2 0x1111 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1199 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x117A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST 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 0x11C4 DUP2 DUP5 PUSH2 0x1126 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x120E DUP3 PUSH2 0xBDA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x122D JUMPI PUSH2 0x122C PUSH2 0x11D6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x124C DUP3 DUP3 PUSH2 0x1205 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x126C JUMPI PUSH2 0x126B PUSH2 0x11D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1275 DUP3 PUSH2 0xBDA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1295 PUSH2 0x1290 DUP5 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12B1 JUMPI PUSH2 0x12B0 PUSH2 0x11D1 JUMP JUMPDEST JUMPDEST PUSH2 0x12BC DUP5 DUP3 DUP6 PUSH2 0xBB0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12D9 JUMPI PUSH2 0x12D8 PUSH2 0x11CC JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x12E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1282 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1301 DUP2 PUSH2 0x9ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x131E JUMPI PUSH2 0x131D PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x133C JUMPI PUSH2 0x133B PUSH2 0x9E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1348 DUP6 DUP3 DUP7 ADD PUSH2 0x12C4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1359 DUP6 DUP3 DUP7 ADD PUSH2 0x12F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E737570706F7274656420746F6B656E207479706500000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1399 PUSH1 0x16 DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0x13A4 DUP3 PUSH2 0x1363 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 0x13C8 DUP2 PUSH2 0x138C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13DA DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0x13E5 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xC46 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140E DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1419 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1431 JUMPI PUSH2 0x1430 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1442 DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1474 JUMPI PUSH2 0x1473 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 STOP 0x4A 0xFB 0xC4 0xEF PUSH23 0x33B1E63350F81931254EC0B3F8270CED4B64C7B104C9B5 0x26 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "258:2756:8:-:0;;;531:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;647:5;613:6;628:14;620:23;;;;;;;;:::i;:::-;;613:31;;;;;;;:::i;:::-;;;;:39;;;;;;;;;;;;;;;;;;697:5;663:6;678:14;670:23;;;;;;;;:::i;:::-;;663:31;;;;;;;:::i;:::-;;;;:39;;;;;;;;;;;;;;;;;;747:5;713:6;728:14;720:23;;;;;;;;:::i;:::-;;713:31;;;;;;;:::i;:::-;;;;:39;;;;;;;;;;;;;;;;;;772:7;763:6;;:16;;;;;;;;;;;;;;;;;;790:25;;;;;;;;;;;;;;;;;:10;801:1;790:13;;;;;;;:::i;:::-;;;:25;;;;;;:::i;:::-;;826;;;;;;;;;;;;;;;;;:10;837:1;826:13;;;;;;;:::i;:::-;;;:25;;;;;;:::i;:::-;;531:328;;;;258:2756;;88:117:12;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:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:112::-;1070:7;1099:24;1117:5;1099:24;:::i;:::-;1088:35;;1017:112;;;:::o;1135:154::-;1224:40;1258:5;1224:40;:::i;:::-;1217:5;1214:51;1204:79;;1279:1;1276;1269:12;1204:79;1135:154;:::o;1295:175::-;1368:5;1399:6;1393:13;1384:22;;1415:49;1458:5;1415:49;:::i;:::-;1295:175;;;;:::o;1476:936::-;1631:6;1639;1647;1655;1704:3;1692:9;1683:7;1679:23;1675:33;1672:120;;;1711:79;;:::i;:::-;1672:120;1831:1;1856:78;1926:7;1917:6;1906:9;1902:22;1856:78;:::i;:::-;1846:88;;1802:142;1983:2;2009:78;2079:7;2070:6;2059:9;2055:22;2009:78;:::i;:::-;1999:88;;1954:143;2136:2;2162:78;2232:7;2223:6;2212:9;2208:22;2162:78;:::i;:::-;2152:88;;2107:143;2289:2;2315:80;2387:7;2378:6;2367:9;2363:22;2315:80;:::i;:::-;2305:90;;2260:145;1476:936;;;;;;;:::o;2418:180::-;2466:77;2463:1;2456:88;2563:4;2560:1;2553:15;2587:4;2584:1;2577:15;2604:180;2652:77;2649:1;2642:88;2749:4;2746:1;2739:15;2773:4;2770:1;2763:15;2790:99;2842:6;2876:5;2870:12;2860:22;;2790:99;;;:::o;2895:180::-;2943:77;2940:1;2933:88;3040:4;3037:1;3030:15;3064:4;3061:1;3054:15;3081:180;3129:77;3126:1;3119:88;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3267:320;3311:6;3348:1;3342:4;3338:12;3328:22;;3395:1;3389:4;3385:12;3416:18;3406:81;;3472:4;3464:6;3460:17;3450:27;;3406:81;3534:2;3526:6;3523:14;3503:18;3500:38;3497:84;;3553:18;;:::i;:::-;3497:84;3318:269;3267:320;;;:::o;3593:141::-;3642:4;3665:3;3657:11;;3688:3;3685:1;3678:14;3722:4;3719:1;3709:18;3701:26;;3593:141;;;:::o;3740:93::-;3777:6;3824:2;3819;3812:5;3808:14;3804:23;3794:33;;3740:93;;;:::o;3839:107::-;3883:8;3933:5;3927:4;3923:16;3902:37;;3839:107;;;;:::o;3952:393::-;4021:6;4071:1;4059:10;4055:18;4094:97;4124:66;4113:9;4094:97;:::i;:::-;4212:39;4242:8;4231:9;4212:39;:::i;:::-;4200:51;;4284:4;4280:9;4273:5;4269:21;4260:30;;4333:4;4323:8;4319:19;4312:5;4309:30;4299:40;;4028:317;;3952:393;;;;;:::o;4351:77::-;4388:7;4417:5;4406:16;;4351:77;;;:::o;4434:60::-;4462:3;4483:5;4476:12;;4434:60;;;:::o;4500:142::-;4550:9;4583:53;4601:34;4610:24;4628:5;4610:24;:::i;:::-;4601:34;:::i;:::-;4583:53;:::i;:::-;4570:66;;4500:142;;;:::o;4648:75::-;4691:3;4712:5;4705:12;;4648:75;;;:::o;4729:269::-;4839:39;4870:7;4839:39;:::i;:::-;4900:91;4949:41;4973:16;4949:41;:::i;:::-;4941:6;4934:4;4928:11;4900:91;:::i;:::-;4894:4;4887:105;4805:193;4729:269;;;:::o;5004:73::-;5049:3;5004:73;:::o;5083:189::-;5160:32;;:::i;:::-;5201:65;5259:6;5251;5245:4;5201:65;:::i;:::-;5136:136;5083:189;;:::o;5278:186::-;5338:120;5355:3;5348:5;5345:14;5338:120;;;5409:39;5446:1;5439:5;5409:39;:::i;:::-;5382:1;5375:5;5371:13;5362:22;;5338:120;;;5278:186;;:::o;5470:543::-;5571:2;5566:3;5563:11;5560:446;;;5605:38;5637:5;5605:38;:::i;:::-;5689:29;5707:10;5689:29;:::i;:::-;5679:8;5675:44;5872:2;5860:10;5857:18;5854:49;;;5893:8;5878:23;;5854:49;5916:80;5972:22;5990:3;5972:22;:::i;:::-;5962:8;5958:37;5945:11;5916:80;:::i;:::-;5575:431;;5560:446;5470:543;;;:::o;6019:117::-;6073:8;6123:5;6117:4;6113:16;6092:37;;6019:117;;;;:::o;6142:169::-;6186:6;6219:51;6267:1;6263:6;6255:5;6252:1;6248:13;6219:51;:::i;:::-;6215:56;6300:4;6294;6290:15;6280:25;;6193:118;6142:169;;;;:::o;6316:295::-;6392:4;6538:29;6563:3;6557:4;6538:29;:::i;:::-;6530:37;;6600:3;6597:1;6593:11;6587:4;6584:21;6576:29;;6316:295;;;;:::o;6616:1395::-;6733:37;6766:3;6733:37;:::i;:::-;6835:18;6827:6;6824:30;6821:56;;;6857:18;;:::i;:::-;6821:56;6901:38;6933:4;6927:11;6901:38;:::i;:::-;6986:67;7046:6;7038;7032:4;6986:67;:::i;:::-;7080:1;7104:4;7091:17;;7136:2;7128:6;7125:14;7153:1;7148:618;;;;7810:1;7827:6;7824:77;;;7876:9;7871:3;7867:19;7861:26;7852:35;;7824:77;7927:67;7987:6;7980:5;7927:67;:::i;:::-;7921:4;7914:81;7783:222;7118:887;;7148:618;7200:4;7196:9;7188:6;7184:22;7234:37;7266:4;7234:37;:::i;:::-;7293:1;7307:208;7321:7;7318:1;7315:14;7307:208;;;7400:9;7395:3;7391:19;7385:26;7377:6;7370:42;7451:1;7443:6;7439:14;7429:24;;7498:2;7487:9;7483:18;7470:31;;7344:4;7341:1;7337:12;7332:17;;7307:208;;;7543:6;7534:7;7531:19;7528:179;;;7601:9;7596:3;7592:19;7586:26;7644:48;7686:4;7678:6;7674:17;7663:9;7644:48;:::i;:::-;7636:6;7629:64;7551:156;7528:179;7753:1;7749;7741:6;7737:14;7733:22;7727:4;7720:36;7155:611;;;7118:887;;6708:1303;;;6616:1395;;:::o;258:2756:8:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DECIMALS_1034": { + "entryPoint": 337, + "id": 1034, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@FIXED_USDC_PRICE_1041": { + "entryPoint": 396, + "id": 1041, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getPriceFromOracle_1163": { + "entryPoint": 1342, + "id": 1163, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_stringToUint_1288": { + "entryPoint": 1980, + "id": 1288, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@oracleKeys_1031": { + "entryPoint": 1179, + "id": 1031, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@oracle_1027": { + "entryPoint": 425, + "id": 1027, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@swap_1370": { + "entryPoint": 463, + "id": 1370, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@tokens_1024": { + "entryPoint": 342, + "id": 1024, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 4738, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 4058, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_enum$_TokenType_$1019": { + "entryPoint": 2860, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 4804, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2564, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 4850, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 4079, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory": { + "entryPoint": 4871, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 2585, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_enum$_TokenType_$1019t_enum$_TokenType_$1019": { + "entryPoint": 2881, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3953, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack": { + "entryPoint": 2742, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_contract$_IOracle_$1015_to_t_address_fromStack": { + "entryPoint": 2802, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3051, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4390, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4165, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5004, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 2479, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 3968, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 4232, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed": { + "entryPoint": 2757, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IOracle_$1015__to_t_address__fromStack_reversed": { + "entryPoint": 2817, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3108, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4522, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3760, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4200, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5039, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 2494, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 4662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 2521, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 4689, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 4369, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2964, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2975, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 5123, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 3839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_exp_helper": { + "entryPoint": 3202, + "id": null, + "parameterSlots": 4, + "returnSlots": 2 + }, + "checked_exp_t_uint256_t_uint256": { + "entryPoint": 3496, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_exp_unsigned": { + "entryPoint": 3285, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 3571, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 5071, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3935, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 4023, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2630, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2469, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IERC20_$877_to_t_address": { + "entryPoint": 2724, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_IOracle_$1015_to_t_address": { + "entryPoint": 2784, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 2706, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 2672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2992, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 4320, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 4613, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 2662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 5175, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3142, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 3792, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 3637, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 4273, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 3888, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4566, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 4556, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 4561, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 2536, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2531, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3034, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_right_1_unsigned": { + "entryPoint": 3189, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23": { + "entryPoint": 3684, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4": { + "entryPoint": 4124, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4": { + "entryPoint": 4963, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 4035, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_enum$_TokenType_$1019": { + "entryPoint": 2844, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2541, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:18933:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "52:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "73:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "44:7:12", + "type": "" + } + ], + "src": "7:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "155:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "172:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "195:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "177:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "177:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "165:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "165:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "165:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "143:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "150:3:12", + "type": "" + } + ], + "src": "90:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "312:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "322:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "334:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "345:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "330:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "330:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "322:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "402:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "415:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "426:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "411:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "411:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "358:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "358:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "358:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "284:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "296:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "307:4:12", + "type": "" + } + ], + "src": "214:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "482:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "492:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "508:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "502:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "502:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "492:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "475:6:12", + "type": "" + } + ], + "src": "442:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "612:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "629:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "632:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "622:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "622:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "622:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "523:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "735:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "752:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "755:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "745:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "745:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "745:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "646:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "812:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "869:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "878:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "881:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "871:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "871:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "871:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "835:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "860:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "842:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "842:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "832:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "832:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "825:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "825:43:12" + }, + "nodeType": "YulIf", + "src": "822:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "805:5:12", + "type": "" + } + ], + "src": "769:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "949:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "959:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "981:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "968:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "968:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "959:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1024:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "997:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "997:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "997:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "927:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "935:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "943:5:12", + "type": "" + } + ], + "src": "897:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1108:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1154:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1156:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "1156:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1156:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1129:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1138:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1125:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1125:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1150:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1121:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1121:32:12" + }, + "nodeType": "YulIf", + "src": "1118:119:12" + }, + { + "nodeType": "YulBlock", + "src": "1247:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1262:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1276:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1266:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1291:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1326:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1337:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1322:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1322:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1346:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1301:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "1301:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1291:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1078:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1089:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1101:6:12", + "type": "" + } + ], + "src": "1042:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1422:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1432:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1447:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1454:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1443:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1443:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1432:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1404:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1414:7:12", + "type": "" + } + ], + "src": "1377:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1541:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1551:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1558:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1551:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1527:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1537:3:12", + "type": "" + } + ], + "src": "1509:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1635:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1645:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1703:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1685:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1685:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1676:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "1676:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1658:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1658:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1645:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1615:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1625:9:12", + "type": "" + } + ], + "src": "1575:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1783:66:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1793:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1837:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "1806:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "1806:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1793:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1763:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1773:9:12", + "type": "" + } + ], + "src": "1723:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1929:66:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1939:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1983:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "1952:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "1952:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1939:9:12" + } + ] + } + ] + }, + "name": "convert_t_contract$_IERC20_$877_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1909:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1919:9:12", + "type": "" + } + ], + "src": "1855:140:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2080:80:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2097:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2147:5:12" + } + ], + "functionName": { + "name": "convert_t_contract$_IERC20_$877_to_t_address", + "nodeType": "YulIdentifier", + "src": "2102:44:12" + }, + "nodeType": "YulFunctionCall", + "src": "2102:51:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2090:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2090:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2090:64:12" + } + ] + }, + "name": "abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2068:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2075:3:12", + "type": "" + } + ], + "src": "2001:159:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2278:138:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2288:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2300:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2311:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2296:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2296:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2288:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2382:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2395:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2406:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2391:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2391:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "2324:57:12" + }, + "nodeType": "YulFunctionCall", + "src": "2324:85:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2324:85:12" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2250:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2262:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2273:4:12", + "type": "" + } + ], + "src": "2166:250:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2498:66:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2508:50:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2552:5:12" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "2521:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2521:37:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "2508:9:12" + } + ] + } + ] + }, + "name": "convert_t_contract$_IOracle_$1015_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2478:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "2488:9:12", + "type": "" + } + ], + "src": "2422:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2651:82:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2668:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2720:5:12" + } + ], + "functionName": { + "name": "convert_t_contract$_IOracle_$1015_to_t_address", + "nodeType": "YulIdentifier", + "src": "2673:46:12" + }, + "nodeType": "YulFunctionCall", + "src": "2673:53:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2661:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2661:66:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2661:66:12" + } + ] + }, + "name": "abi_encode_t_contract$_IOracle_$1015_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2639:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2646:3:12", + "type": "" + } + ], + "src": "2570:163:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2853:140:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2863:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2875:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2886:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2871:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2871:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2863:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2959:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2972:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2983:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2968:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2968:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IOracle_$1015_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "2899:59:12" + }, + "nodeType": "YulFunctionCall", + "src": "2899:87:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2899:87:12" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IOracle_$1015__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2825:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2837:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2848:4:12", + "type": "" + } + ], + "src": "2739:254:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3056:56:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3090:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3099:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3102:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3092:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3092:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3092:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3079:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3086:1:12", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3076:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3076:12:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3069:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3069:20:12" + }, + "nodeType": "YulIf", + "src": "3066:40:12" + } + ] + }, + "name": "validator_revert_t_enum$_TokenType_$1019", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3049:5:12", + "type": "" + } + ], + "src": "2999:113:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3184:101:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3194:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3216:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3203:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "3203:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3194:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3273:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_enum$_TokenType_$1019", + "nodeType": "YulIdentifier", + "src": "3232:40:12" + }, + "nodeType": "YulFunctionCall", + "src": "3232:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3232:47:12" + } + ] + }, + "name": "abi_decode_t_enum$_TokenType_$1019", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3162:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3170:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3178:5:12", + "type": "" + } + ], + "src": "3118:167:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3419:547:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3465:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3467:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3467:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3467:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3440:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3449:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3436:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3436:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3461:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3432:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3432:32:12" + }, + "nodeType": "YulIf", + "src": "3429:119:12" + }, + { + "nodeType": "YulBlock", + "src": "3558:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3573:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3587:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3577:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3602:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3637:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3648:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3633:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3633:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3657:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3612:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "3612:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3602:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3685:132:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3700:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3714:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3704:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3730:77:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3779:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3790:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3775:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3775:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3799:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_enum$_TokenType_$1019", + "nodeType": "YulIdentifier", + "src": "3740:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "3740:67:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3730:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3827:132:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3842:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3856:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3846:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3872:77:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3921:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3932:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3917:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3917:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3941:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_enum$_TokenType_$1019", + "nodeType": "YulIdentifier", + "src": "3882:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "3882:67:12" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3872:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_enum$_TokenType_$1019t_enum$_TokenType_$1019", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3373:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3384:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3396:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3404:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3412:6:12", + "type": "" + } + ], + "src": "3291:675:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4031:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4042:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4058:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4052:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4052:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4042:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4014:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4024:6:12", + "type": "" + } + ], + "src": "3972:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4173:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4190:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4195:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4183:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4183:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4183:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "4211:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4230:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4235:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4226:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4226:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "4211:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4145:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4150:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "4161:11:12", + "type": "" + } + ], + "src": "4077:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4314:184:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4324:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4333:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4328:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4393:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4418:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4423:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4414:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4414:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4437:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4442:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4433:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4433:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4427:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4427:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4407:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4407:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4407:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4354:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4357:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4351:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4351:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4365:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4367:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4376:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4379:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4372:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4372:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4367:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4347:3:12", + "statements": [] + }, + "src": "4343:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "4476:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4481:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4472:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4472:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4490:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4465:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4465:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4465:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "4296:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "4301:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4306:6:12", + "type": "" + } + ], + "src": "4252:246:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4552:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4562:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4580:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4587:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4576:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4576:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4596:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4592:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4592:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4572:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4572:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "4562:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4535:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "4545:6:12", + "type": "" + } + ], + "src": "4504:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4704:285:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4714:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4761:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4728:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "4728:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4718:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4776:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4842:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4847:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4783:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "4783:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4776:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4902:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4909:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4898:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4898:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4916:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4921:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "4863:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "4863:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4863:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "4937:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4948:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4975:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "4953:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "4953:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4944:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4944:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4937:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4685:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4692:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4700:3:12", + "type": "" + } + ], + "src": "4612:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5113:195:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5123:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5135:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5146:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5131:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5131:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5123:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5170:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5181:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5166:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5166:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5189:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5195:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5185:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5185:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5159:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5159:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5159:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "5215:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5287:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5296:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5223:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "5223:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5215:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5085:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5097:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5108:4:12", + "type": "" + } + ], + "src": "4995:313:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5342:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5359:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5362:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5352:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5352:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5352:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5456:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5459:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5449:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5449:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5449:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5480:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5483:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5473:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5473:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5473:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "5314:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5551:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5561:34:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5586:1:12", + "type": "", + "value": "1" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5589:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "5582:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5582:13:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "5561:8:12" + } + ] + } + ] + }, + "name": "shift_right_1_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5532:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "5542:8:12", + "type": "" + } + ], + "src": "5500:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5681:775:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5691:15:12", + "value": { + "name": "_power", + "nodeType": "YulIdentifier", + "src": "5700:6:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "5691:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5715:14:12", + "value": { + "name": "_base", + "nodeType": "YulIdentifier", + "src": "5724:5:12" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "5715:4:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5773:677:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5861:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "5863:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "5863:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5863:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "5839:4:12" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "5849:3:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "5854:4:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5845:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5845:14:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5836:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "5836:24:12" + }, + "nodeType": "YulIf", + "src": "5833:50:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5928:419:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6308:25:12", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "6321:5:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6328:4:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6317:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6317:16:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "6308:5:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "5903:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5913:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5899:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5899:16:12" + }, + "nodeType": "YulIf", + "src": "5896:451:12" + }, + { + "nodeType": "YulAssignment", + "src": "6360:23:12", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6372:4:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6378:4:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "6368:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6368:15:12" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6360:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6396:44:12", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "6431:8:12" + } + ], + "functionName": { + "name": "shift_right_1_unsigned", + "nodeType": "YulIdentifier", + "src": "6408:22:12" + }, + "nodeType": "YulFunctionCall", + "src": "6408:32:12" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "6396:8:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "5749:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5759:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5746:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "5746:15:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "5762:2:12", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "5742:3:12", + "statements": [] + }, + "src": "5738:712:12" + } + ] + }, + "name": "checked_exp_helper", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "_power", + "nodeType": "YulTypedName", + "src": "5636:6:12", + "type": "" + }, + { + "name": "_base", + "nodeType": "YulTypedName", + "src": "5644:5:12", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "5651:8:12", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "5661:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "5669:5:12", + "type": "" + }, + { + "name": "base", + "nodeType": "YulTypedName", + "src": "5676:4:12", + "type": "" + } + ], + "src": "5608:848:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6522:1013:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6717:20:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6719:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6728:1:12", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "6719:5:12" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "6730:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "6707:8:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6700:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6700:16:12" + }, + "nodeType": "YulIf", + "src": "6697:40:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6762:20:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6764:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6773:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "6764:5:12" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "6775:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6756:4:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6749:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6749:12:12" + }, + "nodeType": "YulIf", + "src": "6746:36:12" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6892:20:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6894:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6903:1:12", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "6894:5:12" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "6905:5:12" + } + ] + }, + "nodeType": "YulCase", + "src": "6885:27:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6890:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6936:176:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6971:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "6973:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "6973:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6973:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "6956:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6966:3:12", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6953:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6953:17:12" + }, + "nodeType": "YulIf", + "src": "6950:43:12" + }, + { + "nodeType": "YulAssignment", + "src": "7006:25:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7019:1:12", + "type": "", + "value": "2" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7022:8:12" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "7015:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7015:16:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7006:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7062:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7064:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7064:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7064:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7050:5:12" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "7057:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7047:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7047:14:12" + }, + "nodeType": "YulIf", + "src": "7044:40:12" + }, + { + "nodeType": "YulLeave", + "src": "7097:5:12" + } + ] + }, + "nodeType": "YulCase", + "src": "6921:191:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6926:1:12", + "type": "", + "value": "2" + } + } + ], + "expression": { + "name": "base", + "nodeType": "YulIdentifier", + "src": "6842:4:12" + }, + "nodeType": "YulSwitch", + "src": "6835:277:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7244:123:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7258:28:12", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7271:4:12" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7277:8:12" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "7267:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7267:19:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7258:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7317:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7319:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7319:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7319:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7305:5:12" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "7312:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7302:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7302:14:12" + }, + "nodeType": "YulIf", + "src": "7299:40:12" + }, + { + "nodeType": "YulLeave", + "src": "7352:5:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7147:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7153:2:12", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7144:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7144:12:12" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7161:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7171:2:12", + "type": "", + "value": "78" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7158:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7158:16:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7140:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7140:35:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7196:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7202:3:12", + "type": "", + "value": "307" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7193:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7193:13:12" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7211:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7221:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7208:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7208:16:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7189:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7189:36:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "7124:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7124:111:12" + }, + "nodeType": "YulIf", + "src": "7121:246:12" + }, + { + "nodeType": "YulAssignment", + "src": "7377:57:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7411:1:12", + "type": "", + "value": "1" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7414:4:12" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7420:8:12" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "7430:3:12" + } + ], + "functionName": { + "name": "checked_exp_helper", + "nodeType": "YulIdentifier", + "src": "7392:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "7392:42:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7377:5:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7384:4:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7473:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7475:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7475:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7475:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7450:5:12" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "7461:3:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7466:4:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "7457:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7457:14:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7447:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7447:25:12" + }, + "nodeType": "YulIf", + "src": "7444:51:12" + }, + { + "nodeType": "YulAssignment", + "src": "7504:25:12", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7517:5:12" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7524:4:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7513:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7513:16:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7504:5:12" + } + ] + } + ] + }, + "name": "checked_exp_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "6492:4:12", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "6498:8:12", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "6508:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "6516:5:12", + "type": "" + } + ], + "src": "6462:1073:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7607:219:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7617:31:12", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7643:4:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7625:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7625:23:12" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7617:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7657:39:12", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7687:8:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7669:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7669:27:12" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7657:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7706:113:12", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "7736:4:12" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "7742:8:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7752:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "checked_exp_unsigned", + "nodeType": "YulIdentifier", + "src": "7715:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "7715:104:12" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7706:5:12" + } + ] + } + ] + }, + "name": "checked_exp_t_uint256_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "7582:4:12", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "7588:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "7601:5:12", + "type": "" + } + ], + "src": "7541:285:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7880:362:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7890:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7913:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7895:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7895:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7890:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7924:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7947:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7929:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7929:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7924:1:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7958:28:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7981:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7984:1:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7977:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7977:9:12" + }, + "variables": [ + { + "name": "product_raw", + "nodeType": "YulTypedName", + "src": "7962:11:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7995:41:12", + "value": { + "arguments": [ + { + "name": "product_raw", + "nodeType": "YulIdentifier", + "src": "8024:11:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8006:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "8006:30:12" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "7995:7:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8213:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8215:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "8215:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8215:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8146:1:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8139:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8139:9:12" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8169:1:12" + }, + { + "arguments": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8176:7:12" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8185:1:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8172:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8172:15:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "8166:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "8166:22:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8119:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "8119:83:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8099:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8099:113:12" + }, + "nodeType": "YulIf", + "src": "8096:139:12" + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7863:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7866:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "7872:7:12", + "type": "" + } + ], + "src": "7832:410:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8276:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8293:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8296:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8286:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8286:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8286:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8390:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8393:4:12", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8383:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8383:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8383:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8414:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8417:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8407:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8407:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8407:15:12" + } + ] + }, + "name": "panic_error_0x21", + "nodeType": "YulFunctionDefinition", + "src": "8248:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8540:70:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8562:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8570:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8558:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8558:14:12" + }, + { + "hexValue": "43616e6e6f742073776170207468652073616d6520746f6b656e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8574:28:12", + "type": "", + "value": "Cannot swap the same token" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8551:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "8551:52:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8551:52:12" + } + ] + }, + "name": "store_literal_in_memory_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8532:6:12", + "type": "" + } + ], + "src": "8434:176:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8762:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8772:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8838:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8843:2:12", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8779:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "8779:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8772:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8944:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23", + "nodeType": "YulIdentifier", + "src": "8855:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "8855:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "8855:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "8957:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8968:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8973:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8964:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "8964:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8957:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8750:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8758:3:12", + "type": "" + } + ], + "src": "8616:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9159:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9169:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9181:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9192:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9177:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9177:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9169:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9216:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9227:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9212:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9212:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9235:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9241:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9231:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9231:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9205:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9205:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9205:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "9261:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9395:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9269:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "9269:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9261:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9139:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9154:4:12", + "type": "" + } + ], + "src": "8988:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9441:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9458:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9461:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9451:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9451:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9451:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9555:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9558:4:12", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9548:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9548:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9548:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9579:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9582:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9572:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9572:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9572:15:12" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "9413:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9641:143:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9651:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9674:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9656:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9656:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9651:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9685:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9708:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9690:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "9690:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9685:1:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9732:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "9734:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "9734:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9734:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9729:1:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9722:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9722:9:12" + }, + "nodeType": "YulIf", + "src": "9719:35:12" + }, + { + "nodeType": "YulAssignment", + "src": "9764:14:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9773:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9776:1:12" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9769:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "9769:9:12" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "9764:1:12" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9630:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9633:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "9639:1:12", + "type": "" + } + ], + "src": "9599:185:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9818:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9835:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9838:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9828:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9828:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9828:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9932:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9935:4:12", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9925:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9925:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9925:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9956:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9959:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9949:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "9949:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "9949:15:12" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "9790:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10021:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10031:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10060:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "10042:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "10042:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "10031:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10003:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "10013:7:12", + "type": "" + } + ], + "src": "9976:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10143:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10160:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10183:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "10165:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "10165:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10153:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10153:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10153:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10131:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10138:3:12", + "type": "" + } + ], + "src": "10078:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10356:288:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10366:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10378:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10389:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10374:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10374:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10366:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10446:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10459:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10470:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10455:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10455:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10402:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "10402:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10402:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10527:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10540:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10551:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10536:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10536:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10483:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "10483:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10483:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "10609:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10622:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10633:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10618:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "10618:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10565:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "10565:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10565:72:12" + } + ] + }, + "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": "10312:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "10324:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10332:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10340:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10351:4:12", + "type": "" + } + ], + "src": "10202:442:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10692:48:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10702:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10727:5:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10720:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10720:13:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10713:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10713:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "10702:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10674:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "10684:7:12", + "type": "" + } + ], + "src": "10650:90:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10786:76:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "10840:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10849:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10852:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10842:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10842:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10842:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10809:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10831:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "10816:14:12" + }, + "nodeType": "YulFunctionCall", + "src": "10816:21:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "10806:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "10806:32:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10799:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "10799:40:12" + }, + "nodeType": "YulIf", + "src": "10796:60:12" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10779:5:12", + "type": "" + } + ], + "src": "10746:116:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10928:77:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10938:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "10953:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "10947:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "10947:13:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10938:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "10993:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "10969:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "10969:30:12" + }, + "nodeType": "YulExpressionStatement", + "src": "10969:30:12" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "10906:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10914:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "10922:5:12", + "type": "" + } + ], + "src": "10868:137:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11085:271:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "11131:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "11133:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "11133:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11133:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11106:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11115:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11102:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11102:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11127:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "11098:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11098:32:12" + }, + "nodeType": "YulIf", + "src": "11095:119:12" + }, + { + "nodeType": "YulBlock", + "src": "11224:125:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "11239:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11253:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "11243:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "11268:71:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11311:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "11322:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11307:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11307:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "11331:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nodeType": "YulIdentifier", + "src": "11278:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "11278:61:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11268:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11055:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "11066:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11078:6:12", + "type": "" + } + ], + "src": "11011:345:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11468:65:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11490:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11498:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11486:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11486:14:12" + }, + { + "hexValue": "546f6b656e207472616e73666572206661696c6564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11502:23:12", + "type": "", + "value": "Token transfer failed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11479:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "11479:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11479:47:12" + } + ] + }, + "name": "store_literal_in_memory_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11460:6:12", + "type": "" + } + ], + "src": "11362:171:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11685:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11695:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11761:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11766:2:12", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11702:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "11702:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11695:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11867:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "nodeType": "YulIdentifier", + "src": "11778:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "11778:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "11778:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "11880:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11891:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11896:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11887:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "11887:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11880:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11673:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11681:3:12", + "type": "" + } + ], + "src": "11539:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12082:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12092:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12104:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12115:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12100:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12100:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12092:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12139:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12150:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12135:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12135:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12158:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12164:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12154:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12154:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12128:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12128:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12128:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "12184:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12318:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12192:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "12192:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12184:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12062:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12077:4:12", + "type": "" + } + ], + "src": "11911:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12462:206:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12472:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12484:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12495:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12480:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12480:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12472:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12552:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12565:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12576:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12561:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12561:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12508:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "12508:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12508:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12633:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12646:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12657:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12642:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12642:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12589:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "12589:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12589:72:12" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12426:9:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12438:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12446:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12457:4:12", + "type": "" + } + ], + "src": "12336:332:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12702:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12719:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12722:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12712:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12712:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12712:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12816:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12819:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12809:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12809:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12809:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12840:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12843:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12833:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "12833:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "12833:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "12674:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12911:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12921:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12935:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12941:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "12931:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12931:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12921:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12952:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "12982:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12988:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "12978:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "12978:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "12956:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13029:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13043:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13057:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13065:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13053:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13053:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13043:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "13009:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13002:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13002:26:12" + }, + "nodeType": "YulIf", + "src": "12999:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13132:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "13146:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "13146:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13146:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "13096:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13119:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13127:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13116:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "13116:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "13093:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "13093:38:12" + }, + "nodeType": "YulIf", + "src": "13090:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "12895:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12904:6:12", + "type": "" + } + ], + "src": "12860:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13240:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13250:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "13258:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "13250:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13278:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "13281:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13271:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13271:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "13294:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13312:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13315:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "13302:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "13302:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "13294:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "13227:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "13235:4:12", + "type": "" + } + ], + "src": "13186:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13446:742:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13456:29:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13479:5:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "13473:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "13473:12:12" + }, + "variables": [ + { + "name": "slotValue", + "nodeType": "YulTypedName", + "src": "13460:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13494:50:12", + "value": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "13534:9:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "13508:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "13508:36:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13498:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13553:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13619:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13624:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13560:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "13560:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13553:3:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13680:157:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13733:3:12" + }, + { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "13742:9:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13757:4:12", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "13753:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13753:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13738:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13738:25:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13726:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13726:38:12" + }, + "nodeType": "YulExpressionStatement", + "src": "13726:38:12" + }, + { + "nodeType": "YulAssignment", + "src": "13777:50:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13788:3:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13797:4:12", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13817:6:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13810:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13810:14:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13803:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "13803:22:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "13793:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13793:33:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13784:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13784:43:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "13777:3:12" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "13673:164:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13678:1:12", + "type": "", + "value": "0" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13853:329:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "13898:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13945:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "13913:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "13913:38:12" + }, + "variables": [ + { + "name": "dataPos", + "nodeType": "YulTypedName", + "src": "13902:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "13964:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13973:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "13968:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14031:110:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14060:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14065:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14056:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14056:11:12" + }, + { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "14075:7:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "14069:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "14069:14:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14049:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14049:35:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14049:35:12" + }, + { + "nodeType": "YulAssignment", + "src": "14101:26:12", + "value": { + "arguments": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "14116:7:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14125:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14112:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14112:15:12" + }, + "variableNames": [ + { + "name": "dataPos", + "nodeType": "YulIdentifier", + "src": "14101:7:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "13998:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14001:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "13995:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "13995:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "14009:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14011:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14020:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14023:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14016:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14016:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14011:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "13991:3:12", + "statements": [] + }, + "src": "13987:154:12" + }, + { + "nodeType": "YulAssignment", + "src": "14154:18:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14165:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14170:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14161:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14161:11:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "14154:3:12" + } + ] + } + ] + }, + "nodeType": "YulCase", + "src": "13846:336:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13851:1:12", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nodeType": "YulIdentifier", + "src": "13651:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13662:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13647:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "13647:17:12" + }, + "nodeType": "YulSwitch", + "src": "13640:542:12" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13427:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13434:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "13442:3:12", + "type": "" + } + ], + "src": "13357:831:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14309:192:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14319:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14331:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14342:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14327:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14327:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14319:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14366:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14377:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14362:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14362:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14385:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14391:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14381:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "14381:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14355:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14355:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14355:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "14411:83:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14480:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14489:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14419:60:12" + }, + "nodeType": "YulFunctionCall", + "src": "14419:75:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14411:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14281:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14293:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14304:4:12", + "type": "" + } + ], + "src": "14194:307:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14596:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14613:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14616:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14606:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14606:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14606:12:12" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "14507:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14719:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14736:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14739:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14729:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14729:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14729:12:12" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "14630:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14781:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14798:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14801:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14791:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14791:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14791:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14895:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14898:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14888:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14888:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14888:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14919:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14922:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "14912:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "14912:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "14912:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "14753:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14982:238:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14992:58:12", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15014:6:12" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "15044:4:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "15022:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "15022:27:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15010:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15010:40:12" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "14996:10:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15161:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "15163:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "15163:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15163:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "15104:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15116:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15101:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "15101:34:12" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "15140:10:12" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15152:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "15137:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "15137:22:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "15098:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "15098:62:12" + }, + "nodeType": "YulIf", + "src": "15095:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15199:2:12", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "15203:10:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15192:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "15192:22:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15192:22:12" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14968:6:12", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "14976:4:12", + "type": "" + } + ], + "src": "14939:281:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15267:88:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15277:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "15287:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "15287:20:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15277:6:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15336:6:12" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "15344:4:12" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "15316:19:12" + }, + "nodeType": "YulFunctionCall", + "src": "15316:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15316:33:12" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "15251:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15260:6:12", + "type": "" + } + ], + "src": "15226:129:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15428:241:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15533:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "15535:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "15535:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15535:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15505:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15513:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15502:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "15502:30:12" + }, + "nodeType": "YulIf", + "src": "15499:56:12" + }, + { + "nodeType": "YulAssignment", + "src": "15565:37:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15595:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "15573:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "15573:29:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "15565:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "15639:23:12", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "15651:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15657:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15647:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15647:15:12" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "15639:4:12" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15412:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "15423:4:12", + "type": "" + } + ], + "src": "15361:308:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15770:339:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15780:75:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15847:6:12" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "15805:41:12" + }, + "nodeType": "YulFunctionCall", + "src": "15805:49:12" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "15789:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "15789:66:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "15780:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "15871:5:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15878:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15864:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "15864:21:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15864:21:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "15894:27:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "15909:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15916:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15905:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15905:16:12" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "15898:3:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15959:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "15961:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "15961:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "15961:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "15940:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15945:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15936:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "15936:16:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15954:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15933:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "15933:25:12" + }, + "nodeType": "YulIf", + "src": "15930:112:12" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "16086:3:12" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "16091:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16096:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "16051:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "16051:52:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16051:52:12" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "15743:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "15748:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "15756:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "15764:5:12", + "type": "" + } + ], + "src": "15675:434:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16202:282:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "16251:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "16253:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "16253:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16253:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16230:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16238:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16226:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16226:17:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16245:3:12" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "16222:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16222:27:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "16215:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "16215:35:12" + }, + "nodeType": "YulIf", + "src": "16212:122:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "16343:27:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16363:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16357:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "16357:13:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "16347:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "16379:99:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16451:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16459:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16447:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16447:17:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "16466:6:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16474:3:12" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "16388:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "16388:90:12" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "16379:5:12" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "16180:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16188:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "16196:5:12", + "type": "" + } + ], + "src": "16129:355:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16553:80:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16563:22:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16578:6:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16572:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "16572:13:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16563:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "16621:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "16594:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "16594:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16594:33:12" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "16531:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16539:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "16547:5:12", + "type": "" + } + ], + "src": "16490:143:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16743:576:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "16789:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "16791:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "16791:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16791:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "16764:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16773:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16760:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16760:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16785:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "16756:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16756:32:12" + }, + "nodeType": "YulIf", + "src": "16753:119:12" + }, + { + "nodeType": "YulBlock", + "src": "16882:291:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "16897:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16921:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16932:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16917:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "16917:17:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "16911:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "16911:24:12" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "16901:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16982:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "16984:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "16984:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "16984:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "16954:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16962:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "16951:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "16951:30:12" + }, + "nodeType": "YulIf", + "src": "16948:117:12" + }, + { + "nodeType": "YulAssignment", + "src": "17079:84:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17135:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "17146:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17131:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17131:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "17155:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "17089:41:12" + }, + "nodeType": "YulFunctionCall", + "src": "17089:74:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "17079:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "17183:129:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "17198:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17212:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "17202:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "17228:74:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17274:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "17285:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17270:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17270:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "17294:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "17238:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "17238:64:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "17228:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16705:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "16716:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "16728:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "16736:6:12", + "type": "" + } + ], + "src": "16639:680:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17431:66:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17453:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17461:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17449:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17449:14:12" + }, + { + "hexValue": "556e737570706f7274656420746f6b656e2074797065", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17465:24:12", + "type": "", + "value": "Unsupported token type" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17442:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "17442:48:12" + }, + "nodeType": "YulExpressionStatement", + "src": "17442:48:12" + } + ] + }, + "name": "store_literal_in_memory_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17423:6:12", + "type": "" + } + ], + "src": "17325:172:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17649:220:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17659:74:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17725:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17730:2:12", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17666:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "17666:67:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17659:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17831:3:12" + } + ], + "functionName": { + "name": "store_literal_in_memory_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4", + "nodeType": "YulIdentifier", + "src": "17742:88:12" + }, + "nodeType": "YulFunctionCall", + "src": "17742:93:12" + }, + "nodeType": "YulExpressionStatement", + "src": "17742:93:12" + }, + { + "nodeType": "YulAssignment", + "src": "17844:19:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17855:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17860:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17851:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "17851:12:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17844:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17637:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17645:3:12", + "type": "" + } + ], + "src": "17503:366:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18046:248:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18056:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18068:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18079:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18064:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18064:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18056:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18103:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18114:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18099:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18099:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18122:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18128:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18118:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18118:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18092:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "18092:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "18092:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "18148:139:12", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18282:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18156:124:12" + }, + "nodeType": "YulFunctionCall", + "src": "18156:131:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18148:4:12" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18026:9:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18041:4:12", + "type": "" + } + ], + "src": "17875:419:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18345:149:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18355:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18378:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18360:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "18360:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18355:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18389:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18412:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18394:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "18394:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18389:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18423:17:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18435:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18438:1:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18431:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18431:9:12" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "18423:4:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18465:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18467:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "18467:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "18467:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "18456:4:12" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18462:1:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "18453:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "18453:11:12" + }, + "nodeType": "YulIf", + "src": "18450:37:12" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18331:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18334:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "18340:4:12", + "type": "" + } + ], + "src": "18300:194:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18544:147:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18554:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18577:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18559:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "18559:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18554:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18588:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18611:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18593:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "18593:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18588:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "18622:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18633:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "18636:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18629:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18629:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "18622:3:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18662:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18664:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "18664:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "18664:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "18654:1:12" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "18657:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "18651:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "18651:10:12" + }, + "nodeType": "YulIf", + "src": "18648:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "18531:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "18534:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "18540:3:12", + "type": "" + } + ], + "src": "18500:191:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18740:190:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18750:33:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18777:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "18759:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "18759:24:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18750:5:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18873:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "18875:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "18875:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "18875:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18798:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18805:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "18795:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "18795:77:12" + }, + "nodeType": "YulIf", + "src": "18792:103:12" + }, + { + "nodeType": "YulAssignment", + "src": "18904:20:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "18915:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18922:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18911:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "18911:13:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "18904:3:12" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "18726:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "18736:3:12", + "type": "" + } + ], + "src": "18697:233:12" + } + ] + }, + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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 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 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_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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$877_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$877_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC20_$877__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IERC20_$877_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function convert_t_contract$_IOracle_$1015_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IOracle_$1015_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IOracle_$1015_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IOracle_$1015__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IOracle_$1015_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_enum$_TokenType_$1019(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_TokenType_$1019(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_TokenType_$1019(value)\n }\n\n function abi_decode_tuple_t_uint256t_enum$_TokenType_$1019t_enum$_TokenType_$1019(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_enum$_TokenType_$1019(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_enum$_TokenType_$1019(add(headStart, offset), dataEnd)\n }\n\n }\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 panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\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_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23(memPtr) {\n\n mstore(add(memPtr, 0), \"Cannot swap the same token\")\n\n }\n\n function abi_encode_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23__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_6f3b6914a8f4e42f0dc4d6fcf60d1470463793693c123b4b0782b9cd43668c23_to_t_string_memory_ptr_fromStack( tail)\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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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_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 store_literal_in_memory_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4(memPtr) {\n\n mstore(add(memPtr, 0), \"Token transfer failed\")\n\n }\n\n function abi_encode_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4__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_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4_to_t_string_memory_ptr_fromStack( tail)\n\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 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 // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_string_storage__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_storage_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\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_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\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_string_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_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 store_literal_in_memory_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4(memPtr) {\n\n mstore(add(memPtr, 0), \"Unsupported token type\")\n\n }\n\n function abi_encode_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4__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_dfa5752f20147828209b089e26278779602f3140d23e9a22fb572ead0d20bec4_to_t_string_memory_ptr_fromStack( tail)\n\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_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}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80632e0f2625146100675780634f64b2be1461008557806371814807146100b55780637dc0d1d0146100d3578063968d5a25146100f1578063a562f45714610121575b600080fd5b61006f610151565b60405161007c91906109be565b60405180910390f35b61009f600480360381019061009a9190610a19565b610156565b6040516100ac9190610ac5565b60405180910390f35b6100bd61018c565b6040516100ca91906109be565b60405180910390f35b6100db6101a9565b6040516100e89190610b01565b60405180910390f35b61010b60048036038101906101069190610b41565b6101cf565b60405161011891906109be565b60405180910390f35b61013b60048036038101906101369190610a19565b61049b565b6040516101489190610c24565b60405180910390f35b601281565b6000816003811061016657600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012600a61019a9190610da8565b60016101a69190610df3565b81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008160028111156101e4576101e3610e35565b5b8360028111156101f7576101f6610e35565b5b03610237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022e90610eb0565b60405180910390fd5b60006102428461053e565b9050600061024f8461053e565b90506000816012600a6102629190610da8565b848961026e9190610df3565b6102789190610df3565b6102829190610eff565b9050600086600281111561029957610298610e35565b5b600381106102aa576102a9610f30565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b815260040161030893929190610f80565b6020604051808303816000875af1158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190610fef565b61038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038190611068565b60405180910390fd5b600085600281111561039f5761039e610e35565b5b600381106103b0576103af610f30565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161040c929190611088565b6020604051808303816000875af115801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190610fef565b61048e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048590611068565b60405180910390fd5b8093505050509392505050565b600481600281106104ab57600080fd5b0160009150905080546104bd906110e0565b80601f01602080910402602001604051908101604052809291908181526020018280546104e9906110e0565b80156105365780601f1061050b57610100808354040283529160200191610536565b820191906000526020600020905b81548152906001019060200180831161051957829003601f168201915b505050505081565b600060028081111561055357610552610e35565b5b82600281111561056657610565610e35565b5b0361058c576012600a6105799190610da8565b60016105859190610df3565b90506107b7565b600060028111156105a05761059f610e35565b5b8260028111156105b3576105b2610e35565b5b03610684576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed5ae681600460006002811061060d5761060c610f30565b5b016040518263ffffffff1660e01b815260040161062a91906111aa565b600060405180830381865afa158015610647573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106709190611307565b50905061067c816107bc565b9150506107b7565b6001600281111561069857610697610e35565b5b8260028111156106ab576106aa610e35565b5b0361077c576000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed5ae681600460016002811061070557610704610f30565b5b016040518263ffffffff1660e01b815260040161072291906111aa565b600060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107689190611307565b509050610774816107bc565b9150506107b7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae906113af565b60405180910390fd5b919050565b6000808290506000806000805b845181101561093357603060f81b8582815181106107ea576107e9610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156108685750603960f81b85828151811061083857610837610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b156108d057603085828151811061088257610881610f30565b5b602001015160f81c60f81b60f81c60ff1661089d91906113cf565b600a856108aa9190610df3565b6108b49190611403565b935082156108cb5781806108c790611437565b9250505b610920565b602e60f81b8582815181106108e8576108e7610f30565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361091f57600192505b5b808061092b90611437565b9150506107c9565b5060128110156109685780601261094a91906113cf565b600a6109569190610da8565b836109619190610df3565b9250610999565b60128111156109985760128161097e91906113cf565b600a61098a9190610da8565b836109959190610eff565b92505b5b82945050505050919050565b6000819050919050565b6109b8816109a5565b82525050565b60006020820190506109d360008301846109af565b92915050565b6000604051905090565b600080fd5b600080fd5b6109f6816109a5565b8114610a0157600080fd5b50565b600081359050610a13816109ed565b92915050565b600060208284031215610a2f57610a2e6109e3565b5b6000610a3d84828501610a04565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a8b610a86610a8184610a46565b610a66565b610a46565b9050919050565b6000610a9d82610a70565b9050919050565b6000610aaf82610a92565b9050919050565b610abf81610aa4565b82525050565b6000602082019050610ada6000830184610ab6565b92915050565b6000610aeb82610a92565b9050919050565b610afb81610ae0565b82525050565b6000602082019050610b166000830184610af2565b92915050565b60038110610b2957600080fd5b50565b600081359050610b3b81610b1c565b92915050565b600080600060608486031215610b5a57610b596109e3565b5b6000610b6886828701610a04565b9350506020610b7986828701610b2c565b9250506040610b8a86828701610b2c565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bce578082015181840152602081019050610bb3565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bf682610b94565b610c008185610b9f565b9350610c10818560208601610bb0565b610c1981610bda565b840191505092915050565b60006020820190508181036000830152610c3e8184610beb565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610ccc57808604811115610ca857610ca7610c46565b5b6001851615610cb75780820291505b8081029050610cc585610c75565b9450610c8c565b94509492505050565b600082610ce55760019050610da1565b81610cf35760009050610da1565b8160018114610d095760028114610d1357610d42565b6001915050610da1565b60ff841115610d2557610d24610c46565b5b8360020a915084821115610d3c57610d3b610c46565b5b50610da1565b5060208310610133831016604e8410600b8410161715610d775782820a905083811115610d7257610d71610c46565b5b610da1565b610d848484846001610c82565b92509050818404811115610d9b57610d9a610c46565b5b81810290505b9392505050565b6000610db3826109a5565b9150610dbe836109a5565b9250610deb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610cd5565b905092915050565b6000610dfe826109a5565b9150610e09836109a5565b9250828202610e17816109a5565b91508282048414831517610e2e57610e2d610c46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f43616e6e6f742073776170207468652073616d6520746f6b656e000000000000600082015250565b6000610e9a601a83610b9f565b9150610ea582610e64565b602082019050919050565b60006020820190508181036000830152610ec981610e8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610f0a826109a5565b9150610f15836109a5565b925082610f2557610f24610ed0565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610f6a82610a46565b9050919050565b610f7a81610f5f565b82525050565b6000606082019050610f956000830186610f71565b610fa26020830185610f71565b610faf60408301846109af565b949350505050565b60008115159050919050565b610fcc81610fb7565b8114610fd757600080fd5b50565b600081519050610fe981610fc3565b92915050565b600060208284031215611005576110046109e3565b5b600061101384828501610fda565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000611052601583610b9f565b915061105d8261101c565b602082019050919050565b6000602082019050818103600083015261108181611045565b9050919050565b600060408201905061109d6000830185610f71565b6110aa60208301846109af565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110f857607f821691505b60208210810361110b5761110a6110b1565b5b50919050565b60008190508160005260206000209050919050565b60008154611133816110e0565b61113d8186610b9f565b94506001821660008114611158576001811461116e576111a1565b60ff1983168652811515602002860193506111a1565b61117785611111565b60005b838110156111995781548189015260018201915060208101905061117a565b808801955050505b50505092915050565b600060208201905081810360008301526111c48184611126565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61120e82610bda565b810181811067ffffffffffffffff8211171561122d5761122c6111d6565b5b80604052505050565b60006112406109d9565b905061124c8282611205565b919050565b600067ffffffffffffffff82111561126c5761126b6111d6565b5b61127582610bda565b9050602081019050919050565b600061129561129084611251565b611236565b9050828152602081018484840111156112b1576112b06111d1565b5b6112bc848285610bb0565b509392505050565b600082601f8301126112d9576112d86111cc565b5b81516112e9848260208601611282565b91505092915050565b600081519050611301816109ed565b92915050565b6000806040838503121561131e5761131d6109e3565b5b600083015167ffffffffffffffff81111561133c5761133b6109e8565b5b611348858286016112c4565b9250506020611359858286016112f2565b9150509250929050565b7f556e737570706f7274656420746f6b656e207479706500000000000000000000600082015250565b6000611399601683610b9f565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b60006113da826109a5565b91506113e5836109a5565b92508282039050818111156113fd576113fc610c46565b5b92915050565b600061140e826109a5565b9150611419836109a5565b925082820190508082111561143157611430610c46565b5b92915050565b6000611442826109a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361147457611473610c46565b5b60018201905091905056fea2646970667358221220d3004afbc4ef7633b1e63350f81931254ec0b3f8270ced4b64c7b104c9b526c664736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E0F2625 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x4F64B2BE EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x71814807 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x968D5A25 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0xA562F457 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x151 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0x156 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0xAC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBD PUSH2 0x18C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xB41 JUMP JUMPDEST PUSH2 0x1CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x9BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0x49B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0xC24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x12 PUSH1 0xA PUSH2 0x19A SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1E4 JUMPI PUSH2 0x1E3 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F7 JUMPI PUSH2 0x1F6 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x237 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0xEB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x242 DUP5 PUSH2 0x53E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x24F DUP5 PUSH2 0x53E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x12 PUSH1 0xA PUSH2 0x262 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP5 DUP10 PUSH2 0x26E SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x278 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x282 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x299 JUMPI PUSH2 0x298 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2AA JUMPI PUSH2 0x2A9 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP11 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x308 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF80 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34B SWAP2 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0xE35 JUMP JUMPDEST JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x3B0 JUMPI PUSH2 0x3AF PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40C SWAP3 SWAP2 SWAP1 PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44F SWAP2 SWAP1 PUSH2 0xFEF JUMP JUMPDEST PUSH2 0x48E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x485 SWAP1 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x4BD SWAP1 PUSH2 0x10E0 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 0x4E9 SWAP1 PUSH2 0x10E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x536 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x50B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x536 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 0x519 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x553 JUMPI PUSH2 0x552 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x566 JUMPI PUSH2 0x565 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x58C JUMPI PUSH1 0x12 PUSH1 0xA PUSH2 0x579 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x585 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST SWAP1 POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5A0 JUMPI PUSH2 0x59F PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5B3 JUMPI PUSH2 0x5B2 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x684 JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xED5AE681 PUSH1 0x4 PUSH1 0x0 PUSH1 0x2 DUP2 LT PUSH2 0x60D JUMPI PUSH2 0x60C PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62A SWAP2 SWAP1 PUSH2 0x11AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x670 SWAP2 SWAP1 PUSH2 0x1307 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x67C DUP2 PUSH2 0x7BC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x698 JUMPI PUSH2 0x697 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6AB JUMPI PUSH2 0x6AA PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x77C JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xED5AE681 PUSH1 0x4 PUSH1 0x1 PUSH1 0x2 DUP2 LT PUSH2 0x705 JUMPI PUSH2 0x704 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST ADD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x722 SWAP2 SWAP1 PUSH2 0x11AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x768 SWAP2 SWAP1 PUSH2 0x1307 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x774 DUP2 PUSH2 0x7BC JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AE SWAP1 PUSH2 0x13AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x933 JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x7EA JUMPI PUSH2 0x7E9 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND LT ISZERO DUP1 ISZERO PUSH2 0x868 JUMPI POP PUSH1 0x39 PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x838 JUMPI PUSH2 0x837 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND GT ISZERO JUMPDEST ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x30 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x882 JUMPI PUSH2 0x881 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH1 0xF8 SHR PUSH1 0xFF AND PUSH2 0x89D SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA DUP6 PUSH2 0x8AA SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x8B4 SWAP2 SWAP1 PUSH2 0x1403 JUMP JUMPDEST SWAP4 POP DUP3 ISZERO PUSH2 0x8CB JUMPI DUP2 DUP1 PUSH2 0x8C7 SWAP1 PUSH2 0x1437 JUMP JUMPDEST SWAP3 POP POP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH1 0x2E PUSH1 0xF8 SHL DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x8E8 JUMPI PUSH2 0x8E7 PUSH2 0xF30 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SUB PUSH2 0x91F JUMPI PUSH1 0x1 SWAP3 POP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0x92B SWAP1 PUSH2 0x1437 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7C9 JUMP JUMPDEST POP PUSH1 0x12 DUP2 LT ISZERO PUSH2 0x968 JUMPI DUP1 PUSH1 0x12 PUSH2 0x94A SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA PUSH2 0x956 SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP4 PUSH2 0x961 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST SWAP3 POP PUSH2 0x999 JUMP JUMPDEST PUSH1 0x12 DUP2 GT ISZERO PUSH2 0x998 JUMPI PUSH1 0x12 DUP2 PUSH2 0x97E SWAP2 SWAP1 PUSH2 0x13CF JUMP JUMPDEST PUSH1 0xA PUSH2 0x98A SWAP2 SWAP1 PUSH2 0xDA8 JUMP JUMPDEST DUP4 PUSH2 0x995 SWAP2 SWAP1 PUSH2 0xEFF JUMP JUMPDEST SWAP3 POP JUMPDEST JUMPDEST DUP3 SWAP5 POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B8 DUP2 PUSH2 0x9A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9F6 DUP2 PUSH2 0x9A5 JUMP JUMPDEST DUP2 EQ PUSH2 0xA01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA13 DUP2 PUSH2 0x9ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA2F JUMPI PUSH2 0xA2E PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA3D DUP5 DUP3 DUP6 ADD PUSH2 0xA04 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8B PUSH2 0xA86 PUSH2 0xA81 DUP5 PUSH2 0xA46 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH2 0xA46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9D DUP3 PUSH2 0xA70 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAF DUP3 PUSH2 0xA92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xABF DUP2 PUSH2 0xAA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEB DUP3 PUSH2 0xA92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAFB DUP2 PUSH2 0xAE0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB16 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAF2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB3B DUP2 PUSH2 0xB1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB5A JUMPI PUSH2 0xB59 PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB68 DUP7 DUP3 DUP8 ADD PUSH2 0xA04 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB79 DUP7 DUP3 DUP8 ADD PUSH2 0xB2C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB8A DUP7 DUP3 DUP8 ADD PUSH2 0xB2C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0xBCE JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBB3 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 0xBF6 DUP3 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0xC00 DUP2 DUP6 PUSH2 0xB9F JUMP JUMPDEST SWAP4 POP PUSH2 0xC10 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xBB0 JUMP JUMPDEST PUSH2 0xC19 DUP2 PUSH2 0xBDA 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 0xC3E DUP2 DUP5 PUSH2 0xBEB JUMP JUMPDEST SWAP1 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 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0xCCC JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0xCA8 JUMPI PUSH2 0xCA7 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0xCB7 JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH2 0xCC5 DUP6 PUSH2 0xC75 JUMP JUMPDEST SWAP5 POP PUSH2 0xC8C JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xCE5 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0xDA1 JUMP JUMPDEST DUP2 PUSH2 0xCF3 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0xDA1 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0xD09 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xD13 JUMPI PUSH2 0xD42 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0xD25 JUMPI PUSH2 0xD24 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0xD3C JUMPI PUSH2 0xD3B PUSH2 0xC46 JUMP JUMPDEST JUMPDEST POP PUSH2 0xDA1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0xD77 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0xD72 JUMPI PUSH2 0xD71 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0xD84 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0xC82 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9A PUSH2 0xC46 JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDB3 DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xDBE DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP PUSH2 0xDEB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH2 0xCD5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xE09 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0xE17 DUP2 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0xE2E JUMPI PUSH2 0xE2D PUSH2 0xC46 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x43616E6E6F742073776170207468652073616D6520746F6B656E000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9A PUSH1 0x1A DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0xEA5 DUP3 PUSH2 0xE64 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 0xEC9 DUP2 PUSH2 0xE8D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF0A DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0xF15 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xF25 JUMPI PUSH2 0xF24 PUSH2 0xED0 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 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 PUSH2 0xF6A DUP3 PUSH2 0xA46 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF7A DUP2 PUSH2 0xF5F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xF95 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0xFA2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0xFAF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFCC DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0xFD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xFE9 DUP2 PUSH2 0xFC3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1005 JUMPI PUSH2 0x1004 PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1013 DUP5 DUP3 DUP6 ADD PUSH2 0xFDA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x546F6B656E207472616E73666572206661696C65640000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1052 PUSH1 0x15 DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0x105D DUP3 PUSH2 0x101C 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 0x1081 DUP2 PUSH2 0x1045 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x109D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xF71 JUMP JUMPDEST PUSH2 0x10AA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x9AF JUMP JUMPDEST SWAP4 SWAP3 POP POP 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 0x10F8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x110B JUMPI PUSH2 0x110A PUSH2 0x10B1 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 DUP2 SLOAD PUSH2 0x1133 DUP2 PUSH2 0x10E0 JUMP JUMPDEST PUSH2 0x113D DUP2 DUP7 PUSH2 0xB9F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1158 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x116E JUMPI PUSH2 0x11A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x11A1 JUMP JUMPDEST PUSH2 0x1177 DUP6 PUSH2 0x1111 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1199 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x117A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST 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 0x11C4 DUP2 DUP5 PUSH2 0x1126 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x120E DUP3 PUSH2 0xBDA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x122D JUMPI PUSH2 0x122C PUSH2 0x11D6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x124C DUP3 DUP3 PUSH2 0x1205 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x126C JUMPI PUSH2 0x126B PUSH2 0x11D6 JUMP JUMPDEST JUMPDEST PUSH2 0x1275 DUP3 PUSH2 0xBDA JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1295 PUSH2 0x1290 DUP5 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12B1 JUMPI PUSH2 0x12B0 PUSH2 0x11D1 JUMP JUMPDEST JUMPDEST PUSH2 0x12BC DUP5 DUP3 DUP6 PUSH2 0xBB0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x12D9 JUMPI PUSH2 0x12D8 PUSH2 0x11CC JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x12E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1282 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1301 DUP2 PUSH2 0x9ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x131E JUMPI PUSH2 0x131D PUSH2 0x9E3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x133C JUMPI PUSH2 0x133B PUSH2 0x9E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1348 DUP6 DUP3 DUP7 ADD PUSH2 0x12C4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1359 DUP6 DUP3 DUP7 ADD PUSH2 0x12F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E737570706F7274656420746F6B656E207479706500000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1399 PUSH1 0x16 DUP4 PUSH2 0xB9F JUMP JUMPDEST SWAP2 POP PUSH2 0x13A4 DUP3 PUSH2 0x1363 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 0x13C8 DUP2 PUSH2 0x138C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13DA DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0x13E5 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x13FD JUMPI PUSH2 0x13FC PUSH2 0xC46 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x140E DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1419 DUP4 PUSH2 0x9A5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1431 JUMPI PUSH2 0x1430 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1442 DUP3 PUSH2 0x9A5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1474 JUMPI PUSH2 0x1473 PUSH2 0xC46 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 STOP 0x4A 0xFB 0xC4 0xEF PUSH23 0x33B1E63350F81931254EC0B3F8270CED4B64C7B104C9B5 0x26 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "258:2756:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;327:23;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;463:59;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;357:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2376:635;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;385:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;419:37;454:2;419:37;:::o;327:23::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;463:59::-;454:2;510;:12;;;;:::i;:::-;506:1;:16;;;;:::i;:::-;463:59;:::o;357:21::-;;;;;;;;;;;;;:::o;2376:635::-;2454:7;2490:2;2482:10;;;;;;;;:::i;:::-;;:4;:10;;;;;;;;:::i;:::-;;;2474:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2544:17;2564:25;2584:4;2564:19;:25::i;:::-;2544:45;;2600:15;2618:23;2638:2;2618:19;:23::i;:::-;2600:41;;2700:16;2757:7;454:2;2741;:12;;;;:::i;:::-;2729:9;2720:6;:18;;;;:::i;:::-;:33;;;;:::i;:::-;2719:45;;;;:::i;:::-;2700:64;;2785:6;2800:4;2792:13;;;;;;;;:::i;:::-;;2785:21;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;;2820:10;2840:4;2847:6;2785:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2777:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;2899:6;2914:2;2906:11;;;;;;;;:::i;:::-;;2899:19;;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;2928:10;2940:8;2899:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2891:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2995:8;2988:15;;;;;2376:635;;;;;:::o;385:27::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;867:594::-;940:7;977:14;964:27;;;;;;;;:::i;:::-;;:9;:27;;;;;;;;:::i;:::-;;;960:494;;454:2;510;:12;;;;:::i;:::-;506:1;:16;;;;:::i;:::-;1008:23;;;;960:494;1066:14;1053:27;;;;;;;;:::i;:::-;;:9;:27;;;;;;;;:::i;:::-;;;1049:405;;1098:22;1125:6;;;;;;;;;;;:19;;;1145:10;1156:1;1145:13;;;;;;;:::i;:::-;;;1125:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1097:62;;;1181:23;1195:8;1181:13;:23::i;:::-;1174:30;;;;;1049:405;1239:14;1226:27;;;;;;;;:::i;:::-;;:9;:27;;;;;;;;:::i;:::-;;;1222:232;;1271:22;1298:6;;;;;;;;;;;:19;;;1318:10;1329:1;1318:13;;;;;;;:::i;:::-;;;1298:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1270:62;;;1354:23;1368:8;1354:13;:23::i;:::-;1347:30;;;;;1222:232;1410:32;;;;;;;;;;:::i;:::-;;;;;;;;867:594;;;;:::o;1469:899::-;1532:7;1552:14;1575:1;1552:25;;1588:14;1617:17;1653:21;1696:9;1691:356;1715:1;:8;1711:1;:12;1691:356;;;1757:4;1749:12;;:1;1751;1749:4;;;;;;;;:::i;:::-;;;;;;;;;;:12;;;;;:28;;;;;1773:4;1765:12;;:1;1767;1765:4;;;;;;;;:::i;:::-;;;;;;;;;;:12;;;;;1749:28;1745:291;;;1845:2;1836:1;1838;1836:4;;;;;;;;:::i;:::-;;;;;;;;;;1830:11;;1822:20;;:25;;;;:::i;:::-;1816:2;1807:6;:11;;;;:::i;:::-;:41;;;;:::i;:::-;1798:50;;1871:12;1867:76;;;1908:15;;;;;:::i;:::-;;;;1867:76;1745:291;;;1976:4;1968:12;;:1;1970;1968:4;;;;;;;;:::i;:::-;;;;;;;;;;:12;;;;1964:72;;2016:4;2001:19;;1964:72;1745:291;1725:3;;;;;:::i;:::-;;;;1691:356;;;;454:2;2119:13;:24;2115:220;;;2195:13;454:2;2184:24;;;;:::i;:::-;2179:2;:30;;;;:::i;:::-;2169:6;:41;;;;:::i;:::-;2160:50;;2115:220;;;454:2;2232:13;:24;2228:107;;;454:2;2297:13;:24;;;;:::i;:::-;2292:2;:30;;;;:::i;:::-;2282:6;:41;;;;:::i;:::-;2273:50;;2228:107;2115:220;2354:6;2347:13;;;;;;1469:899;;;:::o;7:77:12:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:60::-;1537:3;1558:5;1551:12;;1509:60;;;:::o;1575:142::-;1625:9;1658:53;1676:34;1685:24;1703:5;1685:24;:::i;:::-;1676:34;:::i;:::-;1658:53;:::i;:::-;1645:66;;1575:142;;;:::o;1723:126::-;1773:9;1806:37;1837:5;1806:37;:::i;:::-;1793:50;;1723:126;;;:::o;1855:140::-;1919:9;1952:37;1983:5;1952:37;:::i;:::-;1939:50;;1855:140;;;:::o;2001:159::-;2102:51;2147:5;2102:51;:::i;:::-;2097:3;2090:64;2001:159;;:::o;2166:250::-;2273:4;2311:2;2300:9;2296:18;2288:26;;2324:85;2406:1;2395:9;2391:17;2382:6;2324:85;:::i;:::-;2166:250;;;;:::o;2422:142::-;2488:9;2521:37;2552:5;2521:37;:::i;:::-;2508:50;;2422:142;;;:::o;2570:163::-;2673:53;2720:5;2673:53;:::i;:::-;2668:3;2661:66;2570:163;;:::o;2739:254::-;2848:4;2886:2;2875:9;2871:18;2863:26;;2899:87;2983:1;2972:9;2968:17;2959:6;2899:87;:::i;:::-;2739:254;;;;:::o;2999:113::-;3086:1;3079:5;3076:12;3066:40;;3102:1;3099;3092:12;3066:40;2999:113;:::o;3118:167::-;3178:5;3216:6;3203:20;3194:29;;3232:47;3273:5;3232:47;:::i;:::-;3118:167;;;;:::o;3291:675::-;3396:6;3404;3412;3461:2;3449:9;3440:7;3436:23;3432:32;3429:119;;;3467:79;;:::i;:::-;3429:119;3587:1;3612:53;3657:7;3648:6;3637:9;3633:22;3612:53;:::i;:::-;3602:63;;3558:117;3714:2;3740:67;3799:7;3790:6;3779:9;3775:22;3740:67;:::i;:::-;3730:77;;3685:132;3856:2;3882:67;3941:7;3932:6;3921:9;3917:22;3882:67;:::i;:::-;3872:77;;3827:132;3291:675;;;;;:::o;3972:99::-;4024:6;4058:5;4052:12;4042:22;;3972:99;;;:::o;4077:169::-;4161:11;4195:6;4190:3;4183:19;4235:4;4230:3;4226:14;4211:29;;4077:169;;;;:::o;4252:246::-;4333:1;4343:113;4357:6;4354:1;4351:13;4343:113;;;4442:1;4437:3;4433:11;4427:18;4423:1;4418:3;4414:11;4407:39;4379:2;4376:1;4372:10;4367:15;;4343:113;;;4490:1;4481:6;4476:3;4472:16;4465:27;4314:184;4252:246;;;:::o;4504:102::-;4545:6;4596:2;4592:7;4587:2;4580:5;4576:14;4572:28;4562:38;;4504:102;;;:::o;4612:377::-;4700:3;4728:39;4761:5;4728:39;:::i;:::-;4783:71;4847:6;4842:3;4783:71;:::i;:::-;4776:78;;4863:65;4921:6;4916:3;4909:4;4902:5;4898:16;4863:65;:::i;:::-;4953:29;4975:6;4953:29;:::i;:::-;4948:3;4944:39;4937:46;;4704:285;4612:377;;;;:::o;4995:313::-;5108:4;5146:2;5135:9;5131:18;5123:26;;5195:9;5189:4;5185:20;5181:1;5170:9;5166:17;5159:47;5223:78;5296:4;5287:6;5223:78;:::i;:::-;5215:86;;4995:313;;;;:::o;5314:180::-;5362:77;5359:1;5352:88;5459:4;5456:1;5449:15;5483:4;5480:1;5473:15;5500:102;5542:8;5589:5;5586:1;5582:13;5561:34;;5500:102;;;:::o;5608:848::-;5669:5;5676:4;5700:6;5691:15;;5724:5;5715:14;;5738:712;5759:1;5749:8;5746:15;5738:712;;;5854:4;5849:3;5845:14;5839:4;5836:24;5833:50;;;5863:18;;:::i;:::-;5833:50;5913:1;5903:8;5899:16;5896:451;;;6328:4;6321:5;6317:16;6308:25;;5896:451;6378:4;6372;6368:15;6360:23;;6408:32;6431:8;6408:32;:::i;:::-;6396:44;;5738:712;;;5608:848;;;;;;;:::o;6462:1073::-;6516:5;6707:8;6697:40;;6728:1;6719:10;;6730:5;;6697:40;6756:4;6746:36;;6773:1;6764:10;;6775:5;;6746:36;6842:4;6890:1;6885:27;;;;6926:1;6921:191;;;;6835:277;;6885:27;6903:1;6894:10;;6905:5;;;6921:191;6966:3;6956:8;6953:17;6950:43;;;6973:18;;:::i;:::-;6950:43;7022:8;7019:1;7015:16;7006:25;;7057:3;7050:5;7047:14;7044:40;;;7064:18;;:::i;:::-;7044:40;7097:5;;;6835:277;;7221:2;7211:8;7208:16;7202:3;7196:4;7193:13;7189:36;7171:2;7161:8;7158:16;7153:2;7147:4;7144:12;7140:35;7124:111;7121:246;;;7277:8;7271:4;7267:19;7258:28;;7312:3;7305:5;7302:14;7299:40;;;7319:18;;:::i;:::-;7299:40;7352:5;;7121:246;7392:42;7430:3;7420:8;7414:4;7411:1;7392:42;:::i;:::-;7377:57;;;;7466:4;7461:3;7457:14;7450:5;7447:25;7444:51;;;7475:18;;:::i;:::-;7444:51;7524:4;7517:5;7513:16;7504:25;;6462:1073;;;;;;:::o;7541:285::-;7601:5;7625:23;7643:4;7625:23;:::i;:::-;7617:31;;7669:27;7687:8;7669:27;:::i;:::-;7657:39;;7715:104;7752:66;7742:8;7736:4;7715:104;:::i;:::-;7706:113;;7541:285;;;;:::o;7832:410::-;7872:7;7895:20;7913:1;7895:20;:::i;:::-;7890:25;;7929:20;7947:1;7929:20;:::i;:::-;7924:25;;7984:1;7981;7977:9;8006:30;8024:11;8006:30;:::i;:::-;7995:41;;8185:1;8176:7;8172:15;8169:1;8166:22;8146:1;8139:9;8119:83;8096:139;;8215:18;;:::i;:::-;8096:139;7880:362;7832:410;;;;:::o;8248:180::-;8296:77;8293:1;8286:88;8393:4;8390:1;8383:15;8417:4;8414:1;8407:15;8434:176;8574:28;8570:1;8562:6;8558:14;8551:52;8434:176;:::o;8616:366::-;8758:3;8779:67;8843:2;8838:3;8779:67;:::i;:::-;8772:74;;8855:93;8944:3;8855:93;:::i;:::-;8973:2;8968:3;8964:12;8957:19;;8616:366;;;:::o;8988:419::-;9154:4;9192:2;9181:9;9177:18;9169:26;;9241:9;9235:4;9231:20;9227:1;9216:9;9212:17;9205:47;9269:131;9395:4;9269:131;:::i;:::-;9261:139;;8988:419;;;:::o;9413:180::-;9461:77;9458:1;9451:88;9558:4;9555:1;9548:15;9582:4;9579:1;9572:15;9599:185;9639:1;9656:20;9674:1;9656:20;:::i;:::-;9651:25;;9690:20;9708:1;9690:20;:::i;:::-;9685:25;;9729:1;9719:35;;9734:18;;:::i;:::-;9719:35;9776:1;9773;9769:9;9764:14;;9599:185;;;;:::o;9790:180::-;9838:77;9835:1;9828:88;9935:4;9932:1;9925:15;9959:4;9956:1;9949:15;9976:96;10013:7;10042:24;10060:5;10042:24;:::i;:::-;10031:35;;9976:96;;;:::o;10078:118::-;10165:24;10183:5;10165:24;:::i;:::-;10160:3;10153:37;10078:118;;:::o;10202:442::-;10351:4;10389:2;10378:9;10374:18;10366:26;;10402:71;10470:1;10459:9;10455:17;10446:6;10402:71;:::i;:::-;10483:72;10551:2;10540:9;10536:18;10527:6;10483:72;:::i;:::-;10565;10633:2;10622:9;10618:18;10609:6;10565:72;:::i;:::-;10202:442;;;;;;:::o;10650:90::-;10684:7;10727:5;10720:13;10713:21;10702:32;;10650:90;;;:::o;10746:116::-;10816:21;10831:5;10816:21;:::i;:::-;10809:5;10806:32;10796:60;;10852:1;10849;10842:12;10796:60;10746:116;:::o;10868:137::-;10922:5;10953:6;10947:13;10938:22;;10969:30;10993:5;10969:30;:::i;:::-;10868:137;;;;:::o;11011:345::-;11078:6;11127:2;11115:9;11106:7;11102:23;11098:32;11095:119;;;11133:79;;:::i;:::-;11095:119;11253:1;11278:61;11331:7;11322:6;11311:9;11307:22;11278:61;:::i;:::-;11268:71;;11224:125;11011:345;;;;:::o;11362:171::-;11502:23;11498:1;11490:6;11486:14;11479:47;11362:171;:::o;11539:366::-;11681:3;11702:67;11766:2;11761:3;11702:67;:::i;:::-;11695:74;;11778:93;11867:3;11778:93;:::i;:::-;11896:2;11891:3;11887:12;11880:19;;11539:366;;;:::o;11911:419::-;12077:4;12115:2;12104:9;12100:18;12092:26;;12164:9;12158:4;12154:20;12150:1;12139:9;12135:17;12128:47;12192:131;12318:4;12192:131;:::i;:::-;12184:139;;11911:419;;;:::o;12336:332::-;12457:4;12495:2;12484:9;12480:18;12472:26;;12508:71;12576:1;12565:9;12561:17;12552:6;12508:71;:::i;:::-;12589:72;12657:2;12646:9;12642:18;12633:6;12589:72;:::i;:::-;12336:332;;;;;:::o;12674:180::-;12722:77;12719:1;12712:88;12819:4;12816:1;12809:15;12843:4;12840:1;12833:15;12860:320;12904:6;12941:1;12935:4;12931:12;12921:22;;12988:1;12982:4;12978:12;13009:18;12999:81;;13065:4;13057:6;13053:17;13043:27;;12999:81;13127:2;13119:6;13116:14;13096:18;13093:38;13090:84;;13146:18;;:::i;:::-;13090:84;12911:269;12860:320;;;:::o;13186:141::-;13235:4;13258:3;13250:11;;13281:3;13278:1;13271:14;13315:4;13312:1;13302:18;13294:26;;13186:141;;;:::o;13357:831::-;13442:3;13479:5;13473:12;13508:36;13534:9;13508:36;:::i;:::-;13560:71;13624:6;13619:3;13560:71;:::i;:::-;13553:78;;13662:1;13651:9;13647:17;13678:1;13673:164;;;;13851:1;13846:336;;;;13640:542;;13673:164;13757:4;13753:9;13742;13738:25;13733:3;13726:38;13817:6;13810:14;13803:22;13797:4;13793:33;13788:3;13784:43;13777:50;;13673:164;;13846:336;13913:38;13945:5;13913:38;:::i;:::-;13973:1;13987:154;14001:6;13998:1;13995:13;13987:154;;;14075:7;14069:14;14065:1;14060:3;14056:11;14049:35;14125:1;14116:7;14112:15;14101:26;;14023:4;14020:1;14016:12;14011:17;;13987:154;;;14170:1;14165:3;14161:11;14154:18;;13853:329;;13640:542;;13446:742;;13357:831;;;;:::o;14194:307::-;14304:4;14342:2;14331:9;14327:18;14319:26;;14391:9;14385:4;14381:20;14377:1;14366:9;14362:17;14355:47;14419:75;14489:4;14480:6;14419:75;:::i;:::-;14411:83;;14194:307;;;;:::o;14507:117::-;14616:1;14613;14606:12;14630:117;14739:1;14736;14729:12;14753:180;14801:77;14798:1;14791:88;14898:4;14895:1;14888:15;14922:4;14919:1;14912:15;14939:281;15022:27;15044:4;15022:27;:::i;:::-;15014:6;15010:40;15152:6;15140:10;15137:22;15116:18;15104:10;15101:34;15098:62;15095:88;;;15163:18;;:::i;:::-;15095:88;15203:10;15199:2;15192:22;14982:238;14939:281;;:::o;15226:129::-;15260:6;15287:20;;:::i;:::-;15277:30;;15316:33;15344:4;15336:6;15316:33;:::i;:::-;15226:129;;;:::o;15361:308::-;15423:4;15513:18;15505:6;15502:30;15499:56;;;15535:18;;:::i;:::-;15499:56;15573:29;15595:6;15573:29;:::i;:::-;15565:37;;15657:4;15651;15647:15;15639:23;;15361:308;;;:::o;15675:434::-;15764:5;15789:66;15805:49;15847:6;15805:49;:::i;:::-;15789:66;:::i;:::-;15780:75;;15878:6;15871:5;15864:21;15916:4;15909:5;15905:16;15954:3;15945:6;15940:3;15936:16;15933:25;15930:112;;;15961:79;;:::i;:::-;15930:112;16051:52;16096:6;16091:3;16086;16051:52;:::i;:::-;15770:339;15675:434;;;;;:::o;16129:355::-;16196:5;16245:3;16238:4;16230:6;16226:17;16222:27;16212:122;;16253:79;;:::i;:::-;16212:122;16363:6;16357:13;16388:90;16474:3;16466:6;16459:4;16451:6;16447:17;16388:90;:::i;:::-;16379:99;;16202:282;16129:355;;;;:::o;16490:143::-;16547:5;16578:6;16572:13;16563:22;;16594:33;16621:5;16594:33;:::i;:::-;16490:143;;;;:::o;16639:680::-;16728:6;16736;16785:2;16773:9;16764:7;16760:23;16756:32;16753:119;;;16791:79;;:::i;:::-;16753:119;16932:1;16921:9;16917:17;16911:24;16962:18;16954:6;16951:30;16948:117;;;16984:79;;:::i;:::-;16948:117;17089:74;17155:7;17146:6;17135:9;17131:22;17089:74;:::i;:::-;17079:84;;16882:291;17212:2;17238:64;17294:7;17285:6;17274:9;17270:22;17238:64;:::i;:::-;17228:74;;17183:129;16639:680;;;;;:::o;17325:172::-;17465:24;17461:1;17453:6;17449:14;17442:48;17325:172;:::o;17503:366::-;17645:3;17666:67;17730:2;17725:3;17666:67;:::i;:::-;17659:74;;17742:93;17831:3;17742:93;:::i;:::-;17860:2;17855:3;17851:12;17844:19;;17503:366;;;:::o;17875:419::-;18041:4;18079:2;18068:9;18064:18;18056:26;;18128:9;18122:4;18118:20;18114:1;18103:9;18099:17;18092:47;18156:131;18282:4;18156:131;:::i;:::-;18148:139;;17875:419;;;:::o;18300:194::-;18340:4;18360:20;18378:1;18360:20;:::i;:::-;18355:25;;18394:20;18412:1;18394:20;:::i;:::-;18389:25;;18438:1;18435;18431:9;18423:17;;18462:1;18456:4;18453:11;18450:37;;;18467:18;;:::i;:::-;18450:37;18300:194;;;;:::o;18500:191::-;18540:3;18559:20;18577:1;18559:20;:::i;:::-;18554:25;;18593:20;18611:1;18593:20;:::i;:::-;18588:25;;18636:1;18633;18629:9;18622:16;;18657:3;18654:1;18651:10;18648:36;;;18664:18;;:::i;:::-;18648:36;18500:191;;;;:::o;18697:233::-;18736:3;18759:24;18777:5;18759:24;:::i;:::-;18750:33;;18805:66;18798:5;18795:77;18792:103;;18875:18;;:::i;:::-;18792:103;18922:1;18915:5;18911:13;18904:20;;18697:233;;;:::o" + }, + "methodIdentifiers": { + "DECIMALS()": "2e0f2625", + "FIXED_USDC_PRICE()": "71814807", + "oracle()": "7dc0d1d0", + "oracleKeys(uint256)": "a562f457", + "swap(uint256,uint8,uint8)": "968d5a25", + "tokens(uint256)": "4f64b2be" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_wbtc\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_weth\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_usdc\",\"type\":\"address\"},{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FIXED_USDC_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"oracleKeys\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum ThreeSwap.TokenType\",\"name\":\"from\",\"type\":\"uint8\"},{\"internalType\":\"enum ThreeSwap.TokenType\",\"name\":\"to\",\"type\":\"uint8\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokens\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ThreeSwap.sol\":\"ThreeSwap\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"contracts/ThreeSwap.sol\":{\"keccak256\":\"0x56cb1d9ad8f7832c6b780837768d1ff8a7fdd6e564570c7f5ce24f1082b531da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b58cd7abfd7df7f48881118628c682cc045a06bd072d27c362f2781b7128304d\",\"dweb:/ipfs/QmRPa7HP9689gzw4hZuCCFsdvTCEg3nd2KtUtDz32RGMna\"]}},\"version\":1}" + } + }, + "contracts/Tokens/USDC.sol": { + "USDC": { + "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": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1391": { + "entryPoint": null, + "id": 1391, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_336": { + "entryPoint": null, + "id": 336, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 306, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1438, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 504, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 983, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1369, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 798, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 944, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1138, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 683, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1108, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 808, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1076, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 562, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 515, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 858, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 699, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1063, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 916, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 712, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 868, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 911, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5817:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:12" + }, + "nodeType": "YulIf", + "src": "623:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:12" + }, + "nodeType": "YulIf", + "src": "714:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:12", + "type": "" + } + ], + "src": "484:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:12", + "type": "" + } + ], + "src": "810:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:12", + "type": "" + } + ], + "src": "957:93:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:12" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:12", + "type": "" + } + ], + "src": "1056:107:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:12" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:12", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:12", + "type": "" + } + ], + "src": "1169:393:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:12", + "type": "" + } + ], + "src": "1568:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:12", + "type": "" + } + ], + "src": "1651:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:12", + "type": "" + } + ], + "src": "1717:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:12", + "type": "" + } + ], + "src": "1865:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:12" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:12", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:12", + "type": "" + } + ], + "src": "1946:269:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:12", + "type": "" + } + ], + "src": "2221:73:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:12" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:12", + "type": "" + } + ], + "src": "2300:189:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:12" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:12" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:12", + "statements": [] + }, + "src": "2555:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:12", + "type": "" + } + ], + "src": "2495:186:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:12", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:12" + }, + "nodeType": "YulIf", + "src": "3071:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:12" + }, + "nodeType": "YulIf", + "src": "2777:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:12", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:12", + "type": "" + } + ], + "src": "2687:543:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:12", + "type": "" + } + ], + "src": "3236:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:12", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:12", + "type": "" + } + ], + "src": "3359:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:12" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:12" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:12", + "type": "" + } + ], + "src": "3533:295:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:12" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:12" + }, + "nodeType": "YulIf", + "src": "4038:56:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:12" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:12" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:12" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:12", + "statements": [] + }, + "src": "4524:208:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:12" + }, + "nodeType": "YulIf", + "src": "4745:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:12" + }, + "nodeType": "YulIf", + "src": "5041:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:12" + }, + "nodeType": "YulSwitch", + "src": "4335:887:12" + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:12", + "type": "" + } + ], + "src": "3833:1395:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5279:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5289:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5304:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5311:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5300:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5300:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5289:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5261:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5271:7:12", + "type": "" + } + ], + "src": "5234:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5411:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5421:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5450:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5432:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5432:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5421:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5403:7:12", + "type": "" + } + ], + "src": "5366:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5533:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5550:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5573:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5555:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5555:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5543:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5543:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5543:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5521:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5528:3:12", + "type": "" + } + ], + "src": "5468:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5690:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5700:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5712:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5723:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5708:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5708:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5700:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5780:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5793:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5804:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5789:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5789:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5736:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5736:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5736:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5662:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5674:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5685:4:12", + "type": "" + } + ], + "src": "5592:222:12" + } + ] + }, + "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 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 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}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50336040518060400160405280600481526020017f55534443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61119a80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e971d9ed893d74cd1d8244c7aeb5547151f3d5e345973751da2da032b2dd61d264736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x90 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA2 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x11A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x59E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x12B DUP2 PUSH3 0x132 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x5BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP 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 0x27A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x290 JUMPI PUSH3 0x28F PUSH3 0x232 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 0x2FA PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2BB JUMP JUMPDEST PUSH3 0x306 DUP7 DUP4 PUSH3 0x2BB 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 0x353 PUSH3 0x34D PUSH3 0x347 DUP5 PUSH3 0x31E JUMP JUMPDEST PUSH3 0x328 JUMP JUMPDEST PUSH3 0x31E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x36F DUP4 PUSH3 0x332 JUMP JUMPDEST PUSH3 0x387 PUSH3 0x37E DUP3 PUSH3 0x35A JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2C8 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x39E PUSH3 0x38F JUMP JUMPDEST PUSH3 0x3AB DUP2 DUP5 DUP5 PUSH3 0x364 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3D3 JUMPI PUSH3 0x3C7 PUSH1 0x0 DUP3 PUSH3 0x394 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3B1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x422 JUMPI PUSH3 0x3EC DUP2 PUSH3 0x296 JUMP JUMPDEST PUSH3 0x3F7 DUP5 PUSH3 0x2AB JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x407 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x41F PUSH3 0x416 DUP6 PUSH3 0x2AB JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3B0 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 0x447 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x427 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x462 DUP4 DUP4 PUSH3 0x434 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x47D DUP3 PUSH3 0x1F8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x499 JUMPI PUSH3 0x498 PUSH3 0x203 JUMP JUMPDEST JUMPDEST PUSH3 0x4A5 DUP3 SLOAD PUSH3 0x261 JUMP JUMPDEST PUSH3 0x4B2 DUP3 DUP3 DUP6 PUSH3 0x3D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4EA JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4D5 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4E1 DUP6 DUP3 PUSH3 0x454 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x551 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x4FA DUP7 PUSH3 0x296 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x524 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 0x4FD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x544 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x540 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x434 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 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x586 DUP3 PUSH3 0x559 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x598 DUP2 PUSH3 0x579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x5B5 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x58D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119A DUP1 PUSH3 0x5CB 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH18 0xD9ED893D74CD1D8244C7AEB5547151F3D5E3 GASLIMIT SWAP8 CALLDATACOPY MLOAD 0xDA 0x2D LOG0 ORIGIN 0xB2 0xDD PUSH2 0xD264 PUSH20 0x6F6C634300081400330000000000000000000000 ", + "sourceMap": "173:205:9:-:0;;;212:58;;;;;;;;;;256:10;1896:113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:5;1962;:13;;;;;;:::i;:::-;;1995:7;1985;:17;;;;;;:::i;:::-;;1896:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;173:205:9;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:12:-;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;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;173:205:9:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_690": { + "entryPoint": 1529, + "id": 690, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_750": { + "entryPoint": 2402, + "id": 750, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 1939, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_mint_639": { + "entryPoint": 2074, + "id": 639, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_915": { + "entryPoint": 1521, + "id": 915, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_798": { + "entryPoint": 1547, + "id": 798, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 2204, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transfer_529": { + "entryPoint": 1695, + "id": 529, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_606": { + "entryPoint": 2873, + "id": 606, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_426": { + "entryPoint": 1252, + "id": 426, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_450": { + "entryPoint": 814, + "id": 450, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_385": { + "entryPoint": 937, + "id": 385, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_363": { + "entryPoint": 906, + "id": 363, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_1406": { + "entryPoint": 915, + "id": 1406, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_345": { + "entryPoint": 668, + "id": 345, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 1029, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 1009, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@symbol_354": { + "entryPoint": 1071, + "id": 354, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_372": { + "entryPoint": 849, + "id": 372, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_482": { + "entryPoint": 859, + "id": 482, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transferOwnership_126": { + "entryPoint": 1387, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transfer_409": { + "entryPoint": 1217, + "id": 409, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3678, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3732, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4051, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 4138, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3753, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4096, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3829, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3509, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3871, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 4009, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4111, + "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": 4298, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3844, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3566, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3886, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 4024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3422, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3433, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4400, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3605, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3996, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3450, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 4249, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 4353, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 4202, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3600, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3492, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3655, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3709, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:12", + "type": "" + } + ], + "src": "112:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:12", + "statements": [] + }, + "src": "378:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:12", + "type": "" + } + ], + "src": "287:246:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:12", + "type": "" + } + ], + "src": "539:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:12", + "type": "" + } + ], + "src": "647:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:12" + } + ] + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:12", + "type": "" + } + ], + "src": "1030:313:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:12", + "type": "" + } + ], + "src": "1349:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:12", + "type": "" + } + ], + "src": "1676:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:12", + "type": "" + } + ], + "src": "1808:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:12" + }, + "nodeType": "YulIf", + "src": "1963:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:12", + "type": "" + } + ], + "src": "1910:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:12" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:12", + "type": "" + } + ], + "src": "2038:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:12", + "type": "" + } + ], + "src": "2183:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:12" + }, + "nodeType": "YulIf", + "src": "2319:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:12", + "type": "" + } + ], + "src": "2266:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:12", + "type": "" + } + ], + "src": "2394:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:12" + }, + "nodeType": "YulIf", + "src": "2632:119:12" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:12", + "type": "" + } + ], + "src": "2539:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:12", + "type": "" + } + ], + "src": "3019:90:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:12" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:12" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:12", + "type": "" + } + ], + "src": "3115:109:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:12" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:12" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:12", + "type": "" + } + ], + "src": "3230:210:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:12", + "type": "" + } + ], + "src": "3446:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:12", + "type": "" + } + ], + "src": "3570:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:12" + }, + "nodeType": "YulIf", + "src": "3908:119:12" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:12" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:12", + "type": "" + } + ], + "src": "3798:619:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:12", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:12", + "type": "" + } + ], + "src": "4423:86:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:12" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:12", + "type": "" + } + ], + "src": "4515:112:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:12" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:12", + "type": "" + } + ], + "src": "4633:214:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:12" + }, + "nodeType": "YulIf", + "src": "4929:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:12", + "type": "" + } + ], + "src": "4853:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5253:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5270:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5293:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5275:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5275:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5263:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5263:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5263:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5248:3:12", + "type": "" + } + ], + "src": "5188:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5410:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5420:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5432:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5443:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5428:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5428:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5420:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5500:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5513:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5524:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5509:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5509:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5456:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5456:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5456:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5382:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5394:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5405:4:12", + "type": "" + } + ], + "src": "5312:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5623:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5669:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5671:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "5671:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5671:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5644:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5653:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5640:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5640:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5665:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5636:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5636:32:12" + }, + "nodeType": "YulIf", + "src": "5633:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5762:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5777:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5791:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5781:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5806:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5841:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5852:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5837:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5837:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5861:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5816:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5816:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5806:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5889:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5904:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5918:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5908:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5934:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5969:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5980:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5965:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5965:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5989:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5944:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5944:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5934:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5585:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5596:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5608:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5616:6:12", + "type": "" + } + ], + "src": "5540:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6048:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6065:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6068:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6058:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6058:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6058:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6162:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6165:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6155:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6155:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6155:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6186:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6189:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6179:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6179:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6179:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6020:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6257:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6267:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6281:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6287:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6277:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6277:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6267:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6298:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6328:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6334:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6324:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6324:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6302:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6375:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6389:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6403:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6411:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6399:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6399:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6389:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6355:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6348:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6348:26:12" + }, + "nodeType": "YulIf", + "src": "6345:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6478:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6492:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "6492:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6492:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6442:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6465:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6473:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6462:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6462:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6439:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6439:38:12" + }, + "nodeType": "YulIf", + "src": "6436:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6241:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6250:6:12", + "type": "" + } + ], + "src": "6206:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6686:288:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6696:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6708:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6719:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6704:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6704:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6696:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6776:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6789:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6785:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6785:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6732:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6732:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6732:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6857:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6870:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6881:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6866:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6866:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6813:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6813:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6813:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6939:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6952:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6963:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6948:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6948:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6895:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6895:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6895:72:12" + } + ] + }, + "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": "6642:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6654:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6662:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6670:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6681:4:12", + "type": "" + } + ], + "src": "6532:442:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:12" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:12" + }, + "nodeType": "YulIf", + "src": "7314:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:12", + "type": "" + } + ], + "src": "7166:191:12" + } + ] + }, + "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_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_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_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 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": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e971d9ed893d74cd1d8244c7aeb5547151f3d5e345973751da2da032b2dd61d264736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH18 0xD9ED893D74CD1D8244C7AEB5547151F3D5E3 GASLIMIT SWAP8 CALLDATACOPY MLOAD 0xDA 0x2D LOG0 ORIGIN 0xB2 0xDD PUSH2 0xD264 PUSH20 0x6F6C634300081400330000000000000000000000 ", + "sourceMap": "173:205:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;278:97:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3299:116:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2276:93:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3846:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:89:2;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;4382:13;4398:12;:10;:12::i;:::-;4382:28;;4420:31;4429:5;4436:7;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;:::o;3144:97::-;3196:7;3222:12;;3215:19;;3144:97;:::o;5039:244::-;5126:4;5142:15;5160:12;:10;:12::i;:::-;5142:30;;5182:37;5198:4;5204:7;5213:5;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;5272:4;5265:11;;;5039:244;;;;;:::o;3002:82::-;3051:5;3075:2;3068:9;;3002:82;:::o;278:97:9:-;1531:13:0;:11;:13::i;:::-;350:17:9::1;356:2;360:6;350:5;:17::i;:::-;278:97:::0;;:::o;3299:116:2:-;3364:7;3390:9;:18;3400:7;3390:18;;;;;;;;;;;;;;;;3383:25;;3299:116;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:93;:::o;3610:178::-;3679:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3733:27;3743:5;3750:2;3754:5;3733:9;:27::i;:::-;3777:4;3770:11;;;3610:178;;;;:::o;3846:140::-;3926:7;3952:11;:18;3964:5;3952:18;;;;;;;;;;;;;;;:27;3971:7;3952:27;;;;;;;;;;;;;;;;3945:34;;3846:140;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:5:-;709:7;735:10;728:17;;656:96;:::o;8989:128:2:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;10762:24;10789:25;10799:5;10806:7;10789:9;:25::i;:::-;10762:52;;10848:17;10828:16;:37;10824:310;;10904:5;10885:16;:24;10881:130;;;10963:7;10972:16;10990:5;10936:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10881:130;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10824:310;10752:388;10663:477;;;:::o;5656:300::-;5755:1;5739:18;;:4;:18;;;5735:86;;5807:1;5780:30;;;;;;;;;;;:::i;:::-;;;;;;;;5735:86;5848:1;5834:16;;:2;:16;;;5830:86;;5902:1;5873:32;;;;;;;;;;;:::i;:::-;;;;;;;;5830:86;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;:::-;5656:300;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7721:208:2:-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9949:432:2:-;10078:1;10061:19;;:5;:19;;;10057:89;;10132:1;10103:32;;;;;;;;;;;:::i;:::-;;;;;;;;10057:89;10178:1;10159:21;;:7;:21;;;10155:90;;10231:1;10203:31;;;;;;;;;;;:::i;:::-;;;;;;;;10155:90;10284:5;10254:11;:18;10266:5;10254:18;;;;;;;;;;;;;;;:27;10273:7;10254:27;;;;;;;;;;;;;;;:35;;;;10303:9;10299:76;;;10349:7;10333:31;;10342:5;10333:31;;;10358:5;10333:31;;;;;;:::i;:::-;;;;;;;;10299:76;9949:432;;;;:::o;6271:1107::-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;7:99:12:-;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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:442::-;6681:4;6719:2;6708:9;6704:18;6696:26;;6732:71;6800:1;6789:9;6785:17;6776:6;6732:71;:::i;:::-;6813:72;6881:2;6870:9;6866:18;6857:6;6813:72;:::i;:::-;6895;6963:2;6952:9;6948:18;6939:6;6895:72;:::i;:::-;6532:442;;;;;;:::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", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"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.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Tokens/USDC.sol\":\"USDC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/Tokens/USDC.sol\":{\"keccak256\":\"0x0d3c8261b06268ba4472ba62fad0e6bff705ab0adf7072f57eebc8254a7094f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9ef25ae9665760bb849d92420286fed9b5b09683f19fee811471a630d98caf0\",\"dweb:/ipfs/QmNZnQabRJc1GN8V26ziFW8XJs5VLFmUPSyCR6wmRtiRgm\"]}},\"version\":1}" + } + }, + "contracts/Tokens/WBTC.sol": { + "WBTC": { + "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": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1427": { + "entryPoint": null, + "id": 1427, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_336": { + "entryPoint": null, + "id": 336, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 306, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1438, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 504, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 983, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1369, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 798, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 944, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1138, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 683, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1108, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 808, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1076, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 562, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 515, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 858, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 699, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1063, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 916, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 712, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 868, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 911, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5817:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:12" + }, + "nodeType": "YulIf", + "src": "623:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:12" + }, + "nodeType": "YulIf", + "src": "714:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:12", + "type": "" + } + ], + "src": "484:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:12", + "type": "" + } + ], + "src": "810:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:12", + "type": "" + } + ], + "src": "957:93:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:12" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:12", + "type": "" + } + ], + "src": "1056:107:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:12" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:12", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:12", + "type": "" + } + ], + "src": "1169:393:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:12", + "type": "" + } + ], + "src": "1568:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:12", + "type": "" + } + ], + "src": "1651:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:12", + "type": "" + } + ], + "src": "1717:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:12", + "type": "" + } + ], + "src": "1865:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:12" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:12", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:12", + "type": "" + } + ], + "src": "1946:269:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:12", + "type": "" + } + ], + "src": "2221:73:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:12" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:12", + "type": "" + } + ], + "src": "2300:189:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:12" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:12" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:12", + "statements": [] + }, + "src": "2555:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:12", + "type": "" + } + ], + "src": "2495:186:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:12", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:12" + }, + "nodeType": "YulIf", + "src": "3071:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:12" + }, + "nodeType": "YulIf", + "src": "2777:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:12", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:12", + "type": "" + } + ], + "src": "2687:543:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:12", + "type": "" + } + ], + "src": "3236:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:12", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:12", + "type": "" + } + ], + "src": "3359:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:12" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:12" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:12", + "type": "" + } + ], + "src": "3533:295:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:12" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:12" + }, + "nodeType": "YulIf", + "src": "4038:56:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:12" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:12" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:12" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:12", + "statements": [] + }, + "src": "4524:208:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:12" + }, + "nodeType": "YulIf", + "src": "4745:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:12" + }, + "nodeType": "YulIf", + "src": "5041:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:12" + }, + "nodeType": "YulSwitch", + "src": "4335:887:12" + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:12", + "type": "" + } + ], + "src": "3833:1395:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5279:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5289:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5304:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5311:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5300:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5300:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5289:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5261:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5271:7:12", + "type": "" + } + ], + "src": "5234:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5411:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5421:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5450:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5432:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5432:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5421:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5403:7:12", + "type": "" + } + ], + "src": "5366:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5533:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5550:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5573:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5555:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5555:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5543:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5543:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5543:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5521:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5528:3:12", + "type": "" + } + ], + "src": "5468:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5690:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5700:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5712:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5723:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5708:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5708:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5700:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5780:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5793:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5804:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5789:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5789:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5736:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5736:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5736:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5662:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5674:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5685:4:12", + "type": "" + } + ], + "src": "5592:222:12" + } + ] + }, + "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 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 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}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50336040518060400160405280600481526020017f57425443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5742544300000000000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61119a80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e5d22bc0e252fb42c86fc6159608ac728dfe9595e93f27351a4e61b7bbf642c564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5742544300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5742544300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x90 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA2 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x11A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x59E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x12B DUP2 PUSH3 0x132 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x5BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP 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 0x27A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x290 JUMPI PUSH3 0x28F PUSH3 0x232 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 0x2FA PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2BB JUMP JUMPDEST PUSH3 0x306 DUP7 DUP4 PUSH3 0x2BB 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 0x353 PUSH3 0x34D PUSH3 0x347 DUP5 PUSH3 0x31E JUMP JUMPDEST PUSH3 0x328 JUMP JUMPDEST PUSH3 0x31E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x36F DUP4 PUSH3 0x332 JUMP JUMPDEST PUSH3 0x387 PUSH3 0x37E DUP3 PUSH3 0x35A JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2C8 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x39E PUSH3 0x38F JUMP JUMPDEST PUSH3 0x3AB DUP2 DUP5 DUP5 PUSH3 0x364 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3D3 JUMPI PUSH3 0x3C7 PUSH1 0x0 DUP3 PUSH3 0x394 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3B1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x422 JUMPI PUSH3 0x3EC DUP2 PUSH3 0x296 JUMP JUMPDEST PUSH3 0x3F7 DUP5 PUSH3 0x2AB JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x407 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x41F PUSH3 0x416 DUP6 PUSH3 0x2AB JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3B0 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 0x447 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x427 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x462 DUP4 DUP4 PUSH3 0x434 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x47D DUP3 PUSH3 0x1F8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x499 JUMPI PUSH3 0x498 PUSH3 0x203 JUMP JUMPDEST JUMPDEST PUSH3 0x4A5 DUP3 SLOAD PUSH3 0x261 JUMP JUMPDEST PUSH3 0x4B2 DUP3 DUP3 DUP6 PUSH3 0x3D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4EA JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4D5 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4E1 DUP6 DUP3 PUSH3 0x454 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x551 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x4FA DUP7 PUSH3 0x296 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x524 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 0x4FD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x544 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x540 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x434 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 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x586 DUP3 PUSH3 0x559 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x598 DUP2 PUSH3 0x579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x5B5 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x58D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119A DUP1 PUSH3 0x5CB 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xD2 0x2B 0xC0 0xE2 MSTORE 0xFB TIMESTAMP 0xC8 PUSH16 0xC6159608AC728DFE9595E93F27351A4E PUSH2 0xB7BB 0xF6 TIMESTAMP 0xC5 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "173:205:10:-:0;;;212:58;;;;;;;;;;256:10;1896:113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:5;1962;:13;;;;;;:::i;:::-;;1995:7;1985;:17;;;;;;:::i;:::-;;1896:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;173:205:10;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:12:-;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;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;173:205:10:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_690": { + "entryPoint": 1529, + "id": 690, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_750": { + "entryPoint": 2402, + "id": 750, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 1939, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_mint_639": { + "entryPoint": 2074, + "id": 639, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_915": { + "entryPoint": 1521, + "id": 915, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_798": { + "entryPoint": 1547, + "id": 798, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 2204, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transfer_529": { + "entryPoint": 1695, + "id": 529, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_606": { + "entryPoint": 2873, + "id": 606, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_426": { + "entryPoint": 1252, + "id": 426, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_450": { + "entryPoint": 814, + "id": 450, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_385": { + "entryPoint": 937, + "id": 385, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_363": { + "entryPoint": 906, + "id": 363, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_1442": { + "entryPoint": 915, + "id": 1442, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_345": { + "entryPoint": 668, + "id": 345, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 1029, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 1009, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@symbol_354": { + "entryPoint": 1071, + "id": 354, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_372": { + "entryPoint": 849, + "id": 372, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_482": { + "entryPoint": 859, + "id": 482, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transferOwnership_126": { + "entryPoint": 1387, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transfer_409": { + "entryPoint": 1217, + "id": 409, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3678, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3732, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4051, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 4138, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3753, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4096, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3829, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3509, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3871, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 4009, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4111, + "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": 4298, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3844, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3566, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3886, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 4024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3422, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3433, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4400, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3605, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3996, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3450, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 4249, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 4353, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 4202, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3600, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3492, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3655, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3709, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:12", + "type": "" + } + ], + "src": "112:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:12", + "statements": [] + }, + "src": "378:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:12", + "type": "" + } + ], + "src": "287:246:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:12", + "type": "" + } + ], + "src": "539:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:12", + "type": "" + } + ], + "src": "647:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:12" + } + ] + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:12", + "type": "" + } + ], + "src": "1030:313:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:12", + "type": "" + } + ], + "src": "1349:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:12", + "type": "" + } + ], + "src": "1676:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:12", + "type": "" + } + ], + "src": "1808:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:12" + }, + "nodeType": "YulIf", + "src": "1963:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:12", + "type": "" + } + ], + "src": "1910:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:12" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:12", + "type": "" + } + ], + "src": "2038:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:12", + "type": "" + } + ], + "src": "2183:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:12" + }, + "nodeType": "YulIf", + "src": "2319:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:12", + "type": "" + } + ], + "src": "2266:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:12", + "type": "" + } + ], + "src": "2394:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:12" + }, + "nodeType": "YulIf", + "src": "2632:119:12" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:12", + "type": "" + } + ], + "src": "2539:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:12", + "type": "" + } + ], + "src": "3019:90:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:12" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:12" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:12", + "type": "" + } + ], + "src": "3115:109:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:12" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:12" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:12", + "type": "" + } + ], + "src": "3230:210:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:12", + "type": "" + } + ], + "src": "3446:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:12", + "type": "" + } + ], + "src": "3570:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:12" + }, + "nodeType": "YulIf", + "src": "3908:119:12" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:12" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:12", + "type": "" + } + ], + "src": "3798:619:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:12", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:12", + "type": "" + } + ], + "src": "4423:86:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:12" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:12", + "type": "" + } + ], + "src": "4515:112:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:12" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:12", + "type": "" + } + ], + "src": "4633:214:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:12" + }, + "nodeType": "YulIf", + "src": "4929:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:12", + "type": "" + } + ], + "src": "4853:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5253:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5270:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5293:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5275:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5275:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5263:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5263:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5263:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5248:3:12", + "type": "" + } + ], + "src": "5188:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5410:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5420:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5432:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5443:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5428:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5428:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5420:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5500:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5513:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5524:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5509:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5509:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5456:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5456:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5456:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5382:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5394:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5405:4:12", + "type": "" + } + ], + "src": "5312:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5623:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5669:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5671:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "5671:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5671:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5644:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5653:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5640:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5640:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5665:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5636:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5636:32:12" + }, + "nodeType": "YulIf", + "src": "5633:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5762:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5777:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5791:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5781:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5806:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5841:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5852:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5837:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5837:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5861:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5816:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5816:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5806:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5889:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5904:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5918:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5908:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5934:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5969:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5980:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5965:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5965:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5989:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5944:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5944:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5934:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5585:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5596:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5608:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5616:6:12", + "type": "" + } + ], + "src": "5540:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6048:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6065:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6068:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6058:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6058:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6058:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6162:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6165:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6155:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6155:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6155:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6186:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6189:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6179:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6179:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6179:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6020:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6257:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6267:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6281:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6287:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6277:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6277:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6267:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6298:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6328:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6334:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6324:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6324:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6302:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6375:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6389:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6403:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6411:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6399:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6399:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6389:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6355:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6348:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6348:26:12" + }, + "nodeType": "YulIf", + "src": "6345:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6478:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6492:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "6492:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6492:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6442:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6465:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6473:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6462:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6462:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6439:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6439:38:12" + }, + "nodeType": "YulIf", + "src": "6436:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6241:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6250:6:12", + "type": "" + } + ], + "src": "6206:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6686:288:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6696:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6708:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6719:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6704:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6704:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6696:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6776:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6789:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6785:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6785:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6732:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6732:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6732:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6857:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6870:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6881:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6866:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6866:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6813:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6813:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6813:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6939:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6952:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6963:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6948:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6948:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6895:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6895:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6895:72:12" + } + ] + }, + "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": "6642:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6654:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6662:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6670:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6681:4:12", + "type": "" + } + ], + "src": "6532:442:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:12" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:12" + }, + "nodeType": "YulIf", + "src": "7314:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:12", + "type": "" + } + ], + "src": "7166:191:12" + } + ] + }, + "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_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_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_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 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": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e5d22bc0e252fb42c86fc6159608ac728dfe9595e93f27351a4e61b7bbf642c564736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 0xD2 0x2B 0xC0 0xE2 MSTORE 0xFB TIMESTAMP 0xC8 PUSH16 0xC6159608AC728DFE9595E93F27351A4E PUSH2 0xB7BB 0xF6 TIMESTAMP 0xC5 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ", + "sourceMap": "173:205:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;278:97:10;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3299:116:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2276:93:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3846:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:89:2;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;4382:13;4398:12;:10;:12::i;:::-;4382:28;;4420:31;4429:5;4436:7;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;:::o;3144:97::-;3196:7;3222:12;;3215:19;;3144:97;:::o;5039:244::-;5126:4;5142:15;5160:12;:10;:12::i;:::-;5142:30;;5182:37;5198:4;5204:7;5213:5;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;5272:4;5265:11;;;5039:244;;;;;:::o;3002:82::-;3051:5;3075:2;3068:9;;3002:82;:::o;278:97:10:-;1531:13:0;:11;:13::i;:::-;350:17:10::1;356:2;360:6;350:5;:17::i;:::-;278:97:::0;;:::o;3299:116:2:-;3364:7;3390:9;:18;3400:7;3390:18;;;;;;;;;;;;;;;;3383:25;;3299:116;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:93;:::o;3610:178::-;3679:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3733:27;3743:5;3750:2;3754:5;3733:9;:27::i;:::-;3777:4;3770:11;;;3610:178;;;;:::o;3846:140::-;3926:7;3952:11;:18;3964:5;3952:18;;;;;;;;;;;;;;;:27;3971:7;3952:27;;;;;;;;;;;;;;;;3945:34;;3846:140;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:5:-;709:7;735:10;728:17;;656:96;:::o;8989:128:2:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;10762:24;10789:25;10799:5;10806:7;10789:9;:25::i;:::-;10762:52;;10848:17;10828:16;:37;10824:310;;10904:5;10885:16;:24;10881:130;;;10963:7;10972:16;10990:5;10936:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10881:130;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10824:310;10752:388;10663:477;;;:::o;5656:300::-;5755:1;5739:18;;:4;:18;;;5735:86;;5807:1;5780:30;;;;;;;;;;;:::i;:::-;;;;;;;;5735:86;5848:1;5834:16;;:2;:16;;;5830:86;;5902:1;5873:32;;;;;;;;;;;:::i;:::-;;;;;;;;5830:86;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;:::-;5656:300;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7721:208:2:-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9949:432:2:-;10078:1;10061:19;;:5;:19;;;10057:89;;10132:1;10103:32;;;;;;;;;;;:::i;:::-;;;;;;;;10057:89;10178:1;10159:21;;:7;:21;;;10155:90;;10231:1;10203:31;;;;;;;;;;;:::i;:::-;;;;;;;;10155:90;10284:5;10254:11;:18;10266:5;10254:18;;;;;;;;;;;;;;;:27;10273:7;10254:27;;;;;;;;;;;;;;;:35;;;;10303:9;10299:76;;;10349:7;10333:31;;10342:5;10333:31;;;10358:5;10333:31;;;;;;:::i;:::-;;;;;;;;10299:76;9949:432;;;;:::o;6271:1107::-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;7:99:12:-;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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:442::-;6681:4;6719:2;6708:9;6704:18;6696:26;;6732:71;6800:1;6789:9;6785:17;6776:6;6732:71;:::i;:::-;6813:72;6881:2;6870:9;6866:18;6857:6;6813:72;:::i;:::-;6895;6963:2;6952:9;6948:18;6939:6;6895:72;:::i;:::-;6532:442;;;;;;:::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", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"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.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Tokens/WBTC.sol\":\"WBTC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/Tokens/WBTC.sol\":{\"keccak256\":\"0x15207667d8d6d30570bf701bb221c82085279292c00147b7fc6edf673f926fb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66df62fb207d6373dc819ebc32fda9a2192bc4e2f45623164b7c6db851613992\",\"dweb:/ipfs/QmRNy1F7vB4rgPR9C3weFQSShTyvmtgaKAcRNF8HD5pd9j\"]}},\"version\":1}" + } + }, + "contracts/Tokens/WETH.sol": { + "USDC": { + "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": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "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": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_1463": { + "entryPoint": null, + "id": 1463, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_336": { + "entryPoint": null, + "id": 336, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 306, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1438, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 662, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 504, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 983, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1401, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1369, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 798, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 944, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1138, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 683, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1108, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 808, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1076, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 562, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 515, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 858, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 699, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1063, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 916, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 712, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 868, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 911, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:5817:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "140:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "157:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "160:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "150:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "150:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "150:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "254:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "257:4:12", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "247:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "247:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "247:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "278:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "281:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "271:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "271:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "271:15:12" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "112:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "326:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "343:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "346:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "336:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "336:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "336:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "440:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "443:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "433:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "433:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "433:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "464:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "467:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "457:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "457:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "457:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "298:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "535:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "545:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "559:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "565:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "555:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "555:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "545:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "576:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "606:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "612:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "602:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "602:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "580:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "653:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "667:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "681:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "689:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "677:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "677:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "667:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "633:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "626:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "626:26:12" + }, + "nodeType": "YulIf", + "src": "623:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "770:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "770:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "770:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "720:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "751:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "740:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "740:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "717:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "717:38:12" + }, + "nodeType": "YulIf", + "src": "714:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "519:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "528:6:12", + "type": "" + } + ], + "src": "484:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "864:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "874:11:12", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "882:3:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "874:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "902:1:12", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "905:3:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "895:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "895:14:12" + }, + "nodeType": "YulExpressionStatement", + "src": "895:14:12" + }, + { + "nodeType": "YulAssignment", + "src": "918:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "936:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "926:9:12" + }, + "nodeType": "YulFunctionCall", + "src": "926:18:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "918:4:12" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "851:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "859:4:12", + "type": "" + } + ], + "src": "810:141:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1001:49:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1011:33:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1029:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1025:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1025:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1041:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1021:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1021:23:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1011:6:12" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "984:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "994:6:12", + "type": "" + } + ], + "src": "957:93:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1109:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1119:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "1144:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1150:5:12" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1140:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1140:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "1119:8:12" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "1084:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1090:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "1100:8:12", + "type": "" + } + ], + "src": "1056:107:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1245:317:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1255:35:12", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "1276:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1288:1:12", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1272:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1272:18:12" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "1259:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1299:109:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1330:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:66:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1311:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1311:97:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "1303:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1417:51:12", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "1448:9:12" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1459:8:12" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "1429:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "1429:39:12" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1417:8:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:30:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1490:5:12" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1501:4:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1497:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1497:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1486:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1486:21:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1477:5:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1516:40:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1529:5:12" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "1540:8:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "1550:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1536:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1536:19:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1526:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1526:30:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1516:6:12" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1206:5:12", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "1213:10:12", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "1225:8:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1238:6:12", + "type": "" + } + ], + "src": "1169:393:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1613:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1623:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1634:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1623:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1595:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1605:7:12", + "type": "" + } + ], + "src": "1568:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1683:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1693:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1700:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1693:3:12" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1669:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1679:3:12", + "type": "" + } + ], + "src": "1651:60:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1777:82:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1787:66:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1845:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1827:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1827:24:12" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "1818:8:12" + }, + "nodeType": "YulFunctionCall", + "src": "1818:34:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1800:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1800:53:12" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "1787:9:12" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1757:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "1767:9:12", + "type": "" + } + ], + "src": "1717:142:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1912:28:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1922:12:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1929:5:12" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "1922:3:12" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1898:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "1908:3:12", + "type": "" + } + ], + "src": "1865:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2022:193:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2032:63:12", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "2087:7:12" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2056:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2056:39:12" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "2036:16:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2111:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2151:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "2145:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "2145:11:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2158:6:12" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "2190:16:12" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "2166:23:12" + }, + "nodeType": "YulFunctionCall", + "src": "2166:41:12" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "2117:27:12" + }, + "nodeType": "YulFunctionCall", + "src": "2117:91:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "2104:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2104:105:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:105:12" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "1999:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2005:6:12", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "2013:7:12", + "type": "" + } + ], + "src": "1946:269:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2270:24:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2280:8:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2287:1:12", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "2280:3:12" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "2266:3:12", + "type": "" + } + ], + "src": "2221:73:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2353:136:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2363:46:12", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "2377:30:12" + }, + "nodeType": "YulFunctionCall", + "src": "2377:32:12" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "2367:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "2462:4:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2468:6:12" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "2476:6:12" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "2418:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "2418:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2418:65:12" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "2339:4:12", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2345:6:12", + "type": "" + } + ], + "src": "2300:189:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2545:136:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2612:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2663:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "2626:29:12" + }, + "nodeType": "YulFunctionCall", + "src": "2626:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2626:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2565:5:12" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2572:3:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2562:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2562:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2577:26:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2579:22:12", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2592:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2599:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2588:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2588:13:12" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "2579:5:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2559:2:12", + "statements": [] + }, + "src": "2555:120:12" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "2533:5:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2540:3:12", + "type": "" + } + ], + "src": "2495:186:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2766:464:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2792:431:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2806:54:12", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2854:5:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "2822:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "2822:38:12" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "2810:8:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2873:63:12", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "2896:8:12" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "2924:10:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "2906:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2906:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2892:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2892:44:12" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "2877:11:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3093:27:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3095:23:12", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3110:8:12" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3095:11:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "3077:10:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3089:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "3074:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3074:18:12" + }, + "nodeType": "YulIf", + "src": "3071:49:12" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "3162:11:12" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "3179:8:12" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3207:3:12" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "3189:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3175:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3175:37:12" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "3133:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3133:80:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3133:80:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "2783:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2788:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2780:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2780:11:12" + }, + "nodeType": "YulIf", + "src": "2777:446:12" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2742:5:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "2749:3:12", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "2754:10:12", + "type": "" + } + ], + "src": "2687:543:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3299:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3309:37:12", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "3334:4:12" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3340:5:12" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "3330:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3330:16:12" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "3309:8:12" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "3274:4:12", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3280:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "3290:8:12", + "type": "" + } + ], + "src": "3236:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3410:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3420:68:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3469:1:12", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "3472:5:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3465:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3465:13:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3484:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3480:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3480:6:12" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "3436:28:12" + }, + "nodeType": "YulFunctionCall", + "src": "3436:51:12" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "3432:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3432:56:12" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "3424:4:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3497:25:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3511:4:12" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "3517:4:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "3507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3507:15:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "3497:6:12" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3387:4:12", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "3393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "3403:6:12", + "type": "" + } + ], + "src": "3359:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3614:214:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3747:37:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3774:4:12" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3780:3:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "3755:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "3755:29:12" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3747:4:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3793:29:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "3804:4:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3814:1:12", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "3817:3:12" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "3810:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3810:11:12" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "3801:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "3801:21:12" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "3793:4:12" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "3595:4:12", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "3601:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "3609:4:12", + "type": "" + } + ], + "src": "3533:295:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3925:1303:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3936:51:12", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "3983:3:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "3950:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "3950:37:12" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "3940:6:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4072:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "4074:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "4074:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4074:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4044:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4052:18:12", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4041:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4041:30:12" + }, + "nodeType": "YulIf", + "src": "4038:56:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4104:52:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4150:4:12" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "4144:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4144:11:12" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "4118:25:12" + }, + "nodeType": "YulFunctionCall", + "src": "4118:38:12" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "4108:6:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4249:4:12" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4263:6:12" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4203:45:12" + }, + "nodeType": "YulFunctionCall", + "src": "4203:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4203:67:12" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4280:18:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4297:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "4284:9:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4308:17:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:4:12", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4308:9:12" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4372:611:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4386:37:12", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4405:6:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4417:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "4413:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4413:9:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4401:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4401:22:12" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "4390:7:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4437:51:12", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4483:4:12" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "4451:31:12" + }, + "nodeType": "YulFunctionCall", + "src": "4451:37:12" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "4441:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4501:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4510:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "4505:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4569:163:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4594:6:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4612:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4617:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4608:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4608:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4602:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4602:26:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4587:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4587:42:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4587:42:12" + }, + { + "nodeType": "YulAssignment", + "src": "4646:24:12", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4660:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4668:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4656:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4656:14:12" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4646:6:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4687:31:12", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4704:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4715:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4700:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4700:18:12" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4687:9:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4535:1:12" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4538:7:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4532:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4532:14:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "4547:21:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4549:17:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4558:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4561:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4554:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4554:12:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "4549:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "4528:3:12", + "statements": [] + }, + "src": "4524:208:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4768:156:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4786:43:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "4813:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "4818:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4809:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4809:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4803:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "4803:26:12" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "4790:9:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "4853:6:12" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "4880:9:12" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4895:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4903:4:12", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4891:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4891:17:12" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "4861:18:12" + }, + "nodeType": "YulFunctionCall", + "src": "4861:48:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4846:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4846:64:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4846:64:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "4751:7:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4760:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "4748:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4748:19:12" + }, + "nodeType": "YulIf", + "src": "4745:179:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "4944:4:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4958:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "4954:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4954:14:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4970:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4950:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4950:22:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "4937:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4937:36:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4937:36:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4365:618:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4370:1:12", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5000:222:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5014:14:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5027:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5018:5:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5051:67:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5069:35:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "5088:3:12" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "5093:9:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5084:19:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "5078:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "5078:26:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5069:5:12" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5044:6:12" + }, + "nodeType": "YulIf", + "src": "5041:77:12" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "5138:4:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5197:5:12" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "5204:6:12" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "5144:52:12" + }, + "nodeType": "YulFunctionCall", + "src": "5144:67:12" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "5131:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5131:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5131:81:12" + } + ] + }, + "nodeType": "YulCase", + "src": "4992:230:12", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "4345:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4353:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4342:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "4342:14:12" + }, + "nodeType": "YulSwitch", + "src": "4335:887:12" + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "3920:3:12", + "type": "" + } + ], + "src": "3833:1395:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5279:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5289:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5304:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5311:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5300:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5300:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5289:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5261:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5271:7:12", + "type": "" + } + ], + "src": "5234:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5411:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5421:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5450:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "5432:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5432:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5421:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5393:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5403:7:12", + "type": "" + } + ], + "src": "5366:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5533:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5550:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5573:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5555:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5555:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5543:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5543:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5543:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5521:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5528:3:12", + "type": "" + } + ], + "src": "5468:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5690:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5700:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5712:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5723:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5708:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5708:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5700:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5780:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5793:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5804:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5789:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5789:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5736:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5736:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5736:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5662:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5674:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5685:4:12", + "type": "" + } + ], + "src": "5592:222:12" + } + ] + }, + "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 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 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}\n", + "id": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50336040518060400160405280600481526020017f55534443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61119a80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea26469706673582212208def6663cc4468a7492308d4f169961d0735ee66d3eeae1193afeb26794b0f9364736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5553444300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x90 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA2 SWAP2 SWAP1 PUSH3 0x472 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x11A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x111 SWAP2 SWAP1 PUSH3 0x59E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x12B DUP2 PUSH3 0x132 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x5BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP 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 0x27A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x290 JUMPI PUSH3 0x28F PUSH3 0x232 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 0x2FA PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2BB JUMP JUMPDEST PUSH3 0x306 DUP7 DUP4 PUSH3 0x2BB 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 0x353 PUSH3 0x34D PUSH3 0x347 DUP5 PUSH3 0x31E JUMP JUMPDEST PUSH3 0x328 JUMP JUMPDEST PUSH3 0x31E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x36F DUP4 PUSH3 0x332 JUMP JUMPDEST PUSH3 0x387 PUSH3 0x37E DUP3 PUSH3 0x35A JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2C8 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x39E PUSH3 0x38F JUMP JUMPDEST PUSH3 0x3AB DUP2 DUP5 DUP5 PUSH3 0x364 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3D3 JUMPI PUSH3 0x3C7 PUSH1 0x0 DUP3 PUSH3 0x394 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3B1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x422 JUMPI PUSH3 0x3EC DUP2 PUSH3 0x296 JUMP JUMPDEST PUSH3 0x3F7 DUP5 PUSH3 0x2AB JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x407 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x41F PUSH3 0x416 DUP6 PUSH3 0x2AB JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3B0 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 0x447 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x427 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x462 DUP4 DUP4 PUSH3 0x434 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x47D DUP3 PUSH3 0x1F8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x499 JUMPI PUSH3 0x498 PUSH3 0x203 JUMP JUMPDEST JUMPDEST PUSH3 0x4A5 DUP3 SLOAD PUSH3 0x261 JUMP JUMPDEST PUSH3 0x4B2 DUP3 DUP3 DUP6 PUSH3 0x3D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4EA JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4D5 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4E1 DUP6 DUP3 PUSH3 0x454 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x551 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x4FA DUP7 PUSH3 0x296 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x524 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 0x4FD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x544 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x540 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x434 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 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x586 DUP3 PUSH3 0x559 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x598 DUP2 PUSH3 0x579 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x5B5 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x58D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119A DUP1 PUSH3 0x5CB 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 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 0xEF PUSH7 0x63CC4468A74923 ADDMOD 0xD4 CALL PUSH10 0x961D0735EE66D3EEAE11 SWAP4 0xAF 0xEB 0x26 PUSH26 0x4B0F9364736F6C63430008140033000000000000000000000000 ", + "sourceMap": "173:205:11:-:0;;;212:58;;;;;;;;;;256:10;1896:113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:5;1962;:13;;;;;;:::i;:::-;;1995:7;1985;:17;;;;;;:::i;:::-;;1896:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;173:205:11;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:12:-;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;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;173:205:11:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_690": { + "entryPoint": 1529, + "id": 690, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_750": { + "entryPoint": 2402, + "id": 750, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 1939, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_mint_639": { + "entryPoint": 2074, + "id": 639, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_915": { + "entryPoint": 1521, + "id": 915, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_798": { + "entryPoint": 1547, + "id": 798, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 2204, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transfer_529": { + "entryPoint": 1695, + "id": 529, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_606": { + "entryPoint": 2873, + "id": 606, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_426": { + "entryPoint": 1252, + "id": 426, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_450": { + "entryPoint": 814, + "id": 450, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_385": { + "entryPoint": 937, + "id": 385, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_363": { + "entryPoint": 906, + "id": 363, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@mint_1478": { + "entryPoint": 915, + "id": 1478, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@name_345": { + "entryPoint": 668, + "id": 345, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 1029, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 1009, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@symbol_354": { + "entryPoint": 1071, + "id": 354, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_372": { + "entryPoint": 849, + "id": 372, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_482": { + "entryPoint": 859, + "id": 482, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transferOwnership_126": { + "entryPoint": 1387, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@transfer_409": { + "entryPoint": 1217, + "id": 409, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3678, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3732, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4051, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 4138, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3913, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 3753, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4096, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3829, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3509, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3871, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 4009, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4111, + "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": 4298, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3844, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3566, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3886, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 4024, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3422, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3433, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 4400, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3605, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3699, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3996, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3450, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 4249, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 4353, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 4202, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 3600, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3492, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "validator_revert_t_address": { + "entryPoint": 3655, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3709, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:7360:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "66:40:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "77:22:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "93:5:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "87:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "87:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "77:6:12" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "49:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "59:6:12", + "type": "" + } + ], + "src": "7:99:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "208:73:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "225:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "230:6:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "218:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "218:19:12" + }, + "nodeType": "YulExpressionStatement", + "src": "218:19:12" + }, + { + "nodeType": "YulAssignment", + "src": "246:29:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "265:3:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "270:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "261:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "261:14:12" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "246:11:12" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "180:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "185:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "196:11:12", + "type": "" + } + ], + "src": "112:169:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "349:184:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "359:10:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "368:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "363:1:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "428:63:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "453:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "458:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "449:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "449:11:12" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "472:3:12" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "477:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "468:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "468:11:12" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "462:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "462:18:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "442:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "442:39:12" + }, + "nodeType": "YulExpressionStatement", + "src": "442:39:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "389:1:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "392:6:12" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "386:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "386:13:12" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "400:19:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "402:15:12", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "411:1:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "414:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "407:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "407:10:12" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "402:1:12" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "382:3:12", + "statements": [] + }, + "src": "378:113:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "511:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "516:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "507:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "507:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "525:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "500:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "500:27:12" + }, + "nodeType": "YulExpressionStatement", + "src": "500:27:12" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "331:3:12", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "336:3:12", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "341:6:12", + "type": "" + } + ], + "src": "287:246:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "587:54:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "597:38:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "615:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "622:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "611:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "611:14:12" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:2:12", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "627:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "627:7:12" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "607:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "607:28:12" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "597:6:12" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "570:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "580:6:12", + "type": "" + } + ], + "src": "539:102:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "739:285:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "749:53:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "796:5:12" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "763:32:12" + }, + "nodeType": "YulFunctionCall", + "src": "763:39:12" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "753:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "811:78:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "877:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "882:6:12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "818:58:12" + }, + "nodeType": "YulFunctionCall", + "src": "818:71:12" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "811:3:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "937:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "944:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "933:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "933:16:12" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "951:3:12" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "956:6:12" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "898:34:12" + }, + "nodeType": "YulFunctionCall", + "src": "898:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "898:65:12" + }, + { + "nodeType": "YulAssignment", + "src": "972:46:12", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "983:3:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1010:6:12" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "988:21:12" + }, + "nodeType": "YulFunctionCall", + "src": "988:29:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "979:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "979:39:12" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "972:3:12" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "720:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "727:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "735:3:12", + "type": "" + } + ], + "src": "647:377:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1148:195:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1158:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1170:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1181:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1166:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1166:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1158:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1205:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1216:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1201:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1201:17:12" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1224:4:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1230:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1220:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1220:20:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1194:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1194:47:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1194:47:12" + }, + { + "nodeType": "YulAssignment", + "src": "1250:86:12", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1322:6:12" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1331:4:12" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "1258:63:12" + }, + "nodeType": "YulFunctionCall", + "src": "1258:78:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1250:4:12" + } + ] + } + ] + }, + "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:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1132:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1143:4:12", + "type": "" + } + ], + "src": "1030:313:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1389:35:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1399:19:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1415:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1409:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "1409:9:12" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1399:6:12" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1382:6:12", + "type": "" + } + ], + "src": "1349:75:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1519:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1536:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1539:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1529:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1529:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1529:12:12" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1642:28:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1659:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1662:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1652:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1652:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "1652:12:12" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1721:81:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1731:65:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1746:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1753:42:12", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1742:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "1742:54:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1731:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1703:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1713:7:12", + "type": "" + } + ], + "src": "1676:126:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1853:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1863:35:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1892:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "1874:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1874:24:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "1863:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1835:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "1845:7:12", + "type": "" + } + ], + "src": "1808:96:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2010:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2019:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2022:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2012:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2012:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2012:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1976:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2001:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1983:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "1983:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1973:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "1973:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1966:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "1966:43:12" + }, + "nodeType": "YulIf", + "src": "1963:63:12" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1946:5:12", + "type": "" + } + ], + "src": "1910:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2090:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2100:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2122:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2109:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2109:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2100:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2165:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "2138:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2138:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2138:33:12" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2068:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2076:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2084:5:12", + "type": "" + } + ], + "src": "2038:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2228:32:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2238:16:12", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2249:5:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "2238:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2210:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "2220:7:12", + "type": "" + } + ], + "src": "2183:77:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2309:79:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2366:16:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2375:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2378:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2368:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2368:12:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2368:12:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2332:5:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2357:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2339:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "2339:24:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "2329:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "2329:35:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2322:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "2322:43:12" + }, + "nodeType": "YulIf", + "src": "2319:63:12" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2302:5:12", + "type": "" + } + ], + "src": "2266:122:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2446:87:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2456:29:12", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2478:6:12" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2465:12:12" + }, + "nodeType": "YulFunctionCall", + "src": "2465:20:12" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2456:5:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2521:5:12" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2494:26:12" + }, + "nodeType": "YulFunctionCall", + "src": "2494:33:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2494:33:12" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2424:6:12", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2432:3:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2440:5:12", + "type": "" + } + ], + "src": "2394:139:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2622:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2668:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2670:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "2670:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "2670:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2643:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2652:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2639:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2639:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2664:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2635:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2635:32:12" + }, + "nodeType": "YulIf", + "src": "2632:119:12" + }, + { + "nodeType": "YulBlock", + "src": "2761:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2776:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2790:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2780:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2805:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2840:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2851:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2836:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2836:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2860:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2815:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2815:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2805:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2888:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2903:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2917:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2907:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2933:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2968:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2979:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2964:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "2964:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2988:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2943:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "2943:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2933:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2584:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2595:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2607:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2615:6:12", + "type": "" + } + ], + "src": "2539:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3061:48:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3071:32:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3096:5:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3089:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3089:13:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3082:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3082:21:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3071:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3043:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3053:7:12", + "type": "" + } + ], + "src": "3019:90:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3174:50:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3191:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3211:5:12" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "3196:14:12" + }, + "nodeType": "YulFunctionCall", + "src": "3196:21:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3184:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3184:34:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3184:34:12" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3162:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3169:3:12", + "type": "" + } + ], + "src": "3115:109:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3322:118:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3332:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3344:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3355:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3340:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3340:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3332:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3406:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3419:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3430:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3415:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3415:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "3368:37:12" + }, + "nodeType": "YulFunctionCall", + "src": "3368:65:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3368:65:12" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3294:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3306:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3317:4:12", + "type": "" + } + ], + "src": "3230:210:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3511:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3528:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3551:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3533:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "3533:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3521:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "3521:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3521:37:12" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3499:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3506:3:12", + "type": "" + } + ], + "src": "3446:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3668:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3678:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3690:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3701:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3686:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3686:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "3678:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3758:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3771:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3782:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3767:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3767:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "3714:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "3714:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3714:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3640:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3652:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "3663:4:12", + "type": "" + } + ], + "src": "3570:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3898:519:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3944:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3946:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "3946:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "3946:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3919:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3928:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3915:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3915:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3940:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3911:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "3911:32:12" + }, + "nodeType": "YulIf", + "src": "3908:119:12" + }, + { + "nodeType": "YulBlock", + "src": "4037:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4052:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4066:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4056:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4081:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4116:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4127:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4112:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4112:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4136:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4091:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4091:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4081:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4164:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4179:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4193:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4183:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4209:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4244:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4255:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4240:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4240:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4264:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4219:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4219:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4209:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4292:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4307:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4321:2:12", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4311:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4337:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4372:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4383:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4368:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4368:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4392:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4347:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "4347:53:12" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4337:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3852:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3863:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3875:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3883:6:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3891:6:12", + "type": "" + } + ], + "src": "3798:619:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4466:43:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4476:27:12", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4491:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4498:4:12", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4487:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4487:16:12" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "4476:7:12" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4448:5:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "4458:7:12", + "type": "" + } + ], + "src": "4423:86:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4576:51:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4593:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4614:5:12" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4598:15:12" + }, + "nodeType": "YulFunctionCall", + "src": "4598:22:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4586:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "4586:35:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4586:35:12" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4564:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4571:3:12", + "type": "" + } + ], + "src": "4515:112:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4727:120:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4737:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4749:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4760:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4745:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4745:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4737:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4813:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4826:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4837:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4822:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4822:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "4773:39:12" + }, + "nodeType": "YulFunctionCall", + "src": "4773:67:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4773:67:12" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4699:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4711:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4722:4:12", + "type": "" + } + ], + "src": "4633:214:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4919:263:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4965:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4967:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "4967:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "4967:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4940:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4949:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4936:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4936:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4961:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4932:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "4932:32:12" + }, + "nodeType": "YulIf", + "src": "4929:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5058:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5073:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5087:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5077:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5102:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5137:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5148:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5133:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5133:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5157:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5112:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5112:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5102:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4889:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4900:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4912:6:12", + "type": "" + } + ], + "src": "4853:329:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5253:53:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5270:3:12" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5293:5:12" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "5275:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "5275:24:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5263:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "5263:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5263:37:12" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5241:5:12", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5248:3:12", + "type": "" + } + ], + "src": "5188:118:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5410:124:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5420:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5432:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5443:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5428:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5428:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5420:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5500:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5513:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5524:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5509:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5509:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5456:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "5456:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5456:71:12" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5382:9:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5394:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5405:4:12", + "type": "" + } + ], + "src": "5312:222:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5623:391:12", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5669:83:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5671:77:12" + }, + "nodeType": "YulFunctionCall", + "src": "5671:79:12" + }, + "nodeType": "YulExpressionStatement", + "src": "5671:79:12" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5644:7:12" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5653:9:12" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5640:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5640:23:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5665:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5636:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5636:32:12" + }, + "nodeType": "YulIf", + "src": "5633:119:12" + }, + { + "nodeType": "YulBlock", + "src": "5762:117:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5777:15:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5791:1:12", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5781:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5806:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5841:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5852:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5837:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5837:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5861:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5816:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5816:53:12" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5806:6:12" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5889:118:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5904:16:12", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5918:2:12", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5908:6:12", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5934:63:12", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5969:9:12" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5980:6:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5965:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "5965:22:12" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5989:7:12" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "5944:20:12" + }, + "nodeType": "YulFunctionCall", + "src": "5944:53:12" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5934:6:12" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5585:9:12", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5596:7:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5608:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5616:6:12", + "type": "" + } + ], + "src": "5540:474:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6048:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6065:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6068:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6058:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6058:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6058:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6162:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6165:4:12", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6155:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6155:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6155:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6186:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6189:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6179:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6179:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6179:15:12" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "6020:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6257:269:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6267:22:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6281:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6287:1:12", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6277:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6277:12:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6267:6:12" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "6298:38:12", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "6328:4:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6334:1:12", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6324:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6324:12:12" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "6302:18:12", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6375:51:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6389:27:12", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6403:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6411:4:12", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6399:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6399:17:12" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6389:6:12" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6355:18:12" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6348:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "6348:26:12" + }, + "nodeType": "YulIf", + "src": "6345:81:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6478:42:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "6492:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "6492:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6492:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "6442:18:12" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6465:6:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6473:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6462:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6462:14:12" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6439:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "6439:38:12" + }, + "nodeType": "YulIf", + "src": "6436:84:12" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "6241:4:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6250:6:12", + "type": "" + } + ], + "src": "6206:320:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6686:288:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6696:26:12", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6708:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6719:2:12", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6704:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6704:18:12" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6696:4:12" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6776:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6789:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6800:1:12", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6785:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6785:17:12" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "6732:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6732:71:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6732:71:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6857:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6870:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6881:2:12", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6866:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6866:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6813:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6813:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6813:72:12" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6939:6:12" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6952:9:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6963:2:12", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6948:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "6948:18:12" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "6895:43:12" + }, + "nodeType": "YulFunctionCall", + "src": "6895:72:12" + }, + "nodeType": "YulExpressionStatement", + "src": "6895:72:12" + } + ] + }, + "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": "6642:9:12", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "6654:6:12", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "6662:6:12", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6670:6:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6681:4:12", + "type": "" + } + ], + "src": "6532:442:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7008:152:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7025:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7028:77:12", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7018:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7018:88:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7018:88:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7122:1:12", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7125:4:12", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7115:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7115:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7115:15:12" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7146:1:12", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7149:4:12", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7139:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "7139:15:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7139:15:12" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "6980:180:12" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7210:147:12", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7220:25:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7243:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7225:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7225:20:12" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7220:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7254:25:12", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7277:1:12" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7259:17:12" + }, + "nodeType": "YulFunctionCall", + "src": "7259:20:12" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7254:1:12" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7288:16:12", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7299:1:12" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7302:1:12" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7295:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "7295:9:12" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7288:3:12" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7328:22:12", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7330:16:12" + }, + "nodeType": "YulFunctionCall", + "src": "7330:18:12" + }, + "nodeType": "YulExpressionStatement", + "src": "7330:18:12" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7320:1:12" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7323:3:12" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7317:2:12" + }, + "nodeType": "YulFunctionCall", + "src": "7317:10:12" + }, + "nodeType": "YulIf", + "src": "7314:36:12" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7197:1:12", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7200:1:12", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7206:3:12", + "type": "" + } + ], + "src": "7166:191:12" + } + ] + }, + "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_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_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_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 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": 12, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea26469706673582212208def6663cc4468a7492308d4f169961d0735ee66d3eeae1193afeb26794b0f9364736f6c63430008140033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x280 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1DA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1E4 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x18E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x137 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x178 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x393 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D1 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E2 PUSH2 0x3F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1EC PUSH2 0x405 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH2 0x42F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0xEA9 JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x247 SWAP2 SWAP1 PUSH2 0xF04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0x102A JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0xFD3 JUMP JUMPDEST PUSH2 0x56B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x2AB SWAP1 PUSH2 0x1099 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 0x2D7 SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x324 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x324 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 0x307 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 0x339 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x346 DUP2 DUP6 DUP6 PUSH2 0x5F9 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 0x366 PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x373 DUP6 DUP3 DUP6 PUSH2 0x60B JUMP JUMPDEST PUSH2 0x37E DUP6 DUP6 DUP6 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x39B PUSH2 0x793 JUMP JUMPDEST PUSH2 0x3A5 DUP3 DUP3 PUSH2 0x81A 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 PUSH2 0x3F9 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x403 PUSH1 0x0 PUSH2 0x89C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x43E SWAP1 PUSH2 0x1099 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 0x46A SWAP1 PUSH2 0x1099 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x48C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4B7 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 0x49A 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 0x4CC PUSH2 0x5F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4D9 DUP2 DUP6 DUP6 PUSH2 0x69F 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 PUSH2 0x573 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5E5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DC SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5EE DUP2 PUSH2 0x89C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x606 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x962 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x617 DUP5 DUP5 PUSH2 0x4E4 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x699 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x689 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x680 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x698 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x962 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x711 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x708 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x783 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x77A SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x78E DUP4 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x79B PUSH2 0x5F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7B9 PUSH2 0x405 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x818 JUMPI PUSH2 0x7DC PUSH2 0x5F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80F SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x88C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x883 SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x898 PUSH1 0x0 DUP4 DUP4 PUSH2 0xB39 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP 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 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x9D4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9CB SWAP2 SWAP1 PUSH2 0x100F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA46 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3D SWAP2 SWAP1 PUSH2 0x100F 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 0xB33 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0xB2A SWAP2 SWAP1 PUSH2 0xF2E 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 0xB8B JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB7F SWAP2 SWAP1 PUSH2 0x1130 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xC5E 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 0xC17 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x10CA 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 0xCA7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xCF4 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 0xD51 SWAP2 SWAP1 PUSH2 0xF2E 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 0xD98 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD7D 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 0xDC0 DUP3 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0xDCA DUP2 DUP6 PUSH2 0xD69 JUMP JUMPDEST SWAP4 POP PUSH2 0xDDA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xD7A JUMP JUMPDEST PUSH2 0xDE3 DUP2 PUSH2 0xDA4 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 0xE08 DUP2 DUP5 PUSH2 0xDB5 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 0xE40 DUP3 PUSH2 0xE15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE50 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP2 EQ PUSH2 0xE5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE6D DUP2 PUSH2 0xE47 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE86 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP2 EQ PUSH2 0xE91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xEA3 DUP2 PUSH2 0xE7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEC0 JUMPI PUSH2 0xEBF PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xECE DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEDF DUP6 DUP3 DUP7 ADD PUSH2 0xE94 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 0xEFE DUP2 PUSH2 0xEE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF19 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEF5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF28 DUP2 PUSH2 0xE73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF43 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF62 JUMPI PUSH2 0xF61 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF70 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xF81 DUP7 DUP3 DUP8 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xF92 DUP7 DUP3 DUP8 ADD PUSH2 0xE94 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 0xFB2 DUP2 PUSH2 0xF9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFA9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE9 JUMPI PUSH2 0xFE8 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF7 DUP5 DUP3 DUP6 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1009 DUP2 PUSH2 0xE35 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1024 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1000 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1041 JUMPI PUSH2 0x1040 PUSH2 0xE10 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x104F DUP6 DUP3 DUP7 ADD PUSH2 0xE5E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1060 DUP6 DUP3 DUP7 ADD PUSH2 0xE5E 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 0x10B1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10C4 JUMPI PUSH2 0x10C3 PUSH2 0x106A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x10DF PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x10EC PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x10F9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x113B DUP3 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP PUSH2 0x1146 DUP4 PUSH2 0xE73 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x115E JUMPI PUSH2 0x115D PUSH2 0x1101 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 0xEF PUSH7 0x63CC4468A74923 ADDMOD 0xD4 CALL PUSH10 0x961D0735EE66D3EEAE11 SWAP4 0xAF 0xEB 0x26 PUSH26 0x4B0F9364736F6C63430008140033000000000000000000000000 ", + "sourceMap": "173:205:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3144:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;278:97:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3299:116:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2276:93:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3846:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2074:89:2;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;4382:13;4398:12;:10;:12::i;:::-;4382:28;;4420:31;4429:5;4436:7;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;:::o;3144:97::-;3196:7;3222:12;;3215:19;;3144:97;:::o;5039:244::-;5126:4;5142:15;5160:12;:10;:12::i;:::-;5142:30;;5182:37;5198:4;5204:7;5213:5;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;5272:4;5265:11;;;5039:244;;;;;:::o;3002:82::-;3051:5;3075:2;3068:9;;3002:82;:::o;278:97:11:-;1531:13:0;:11;:13::i;:::-;350:17:11::1;356:2;360:6;350:5;:17::i;:::-;278:97:::0;;:::o;3299:116:2:-;3364:7;3390:9;:18;3400:7;3390:18;;;;;;;;;;;;;;;;3383:25;;3299:116;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:93;:::o;3610:178::-;3679:4;3695:13;3711:12;:10;:12::i;:::-;3695:28;;3733:27;3743:5;3750:2;3754:5;3733:9;:27::i;:::-;3777:4;3770:11;;;3610:178;;;;:::o;3846:140::-;3926:7;3952:11;:18;3964:5;3952:18;;;;;;;;;;;;;;;:27;3971:7;3952:27;;;;;;;;;;;;;;;;3945:34;;3846:140;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:5:-;709:7;735:10;728:17;;656:96;:::o;8989:128:2:-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;10762:24;10789:25;10799:5;10806:7;10789:9;:25::i;:::-;10762:52;;10848:17;10828:16;:37;10824:310;;10904:5;10885:16;:24;10881:130;;;10963:7;10972:16;10990:5;10936:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10881:130;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10824:310;10752:388;10663:477;;;:::o;5656:300::-;5755:1;5739:18;;:4;:18;;;5735:86;;5807:1;5780:30;;;;;;;;;;;:::i;:::-;;;;;;;;5735:86;5848:1;5834:16;;:2;:16;;;5830:86;;5902:1;5873:32;;;;;;;;;;;:::i;:::-;;;;;;;;5830:86;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;:::-;5656:300;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7721:208:2:-;7810:1;7791:21;;:7;:21;;;7787:91;;7864:1;7835:32;;;;;;;;;;;:::i;:::-;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9949:432:2:-;10078:1;10061:19;;:5;:19;;;10057:89;;10132:1;10103:32;;;;;;;;;;;:::i;:::-;;;;;;;;10057:89;10178:1;10159:21;;:7;:21;;;10155:90;;10231:1;10203:31;;;;;;;;;;;:::i;:::-;;;;;;;;10155:90;10284:5;10254:11;:18;10266:5;10254:18;;;;;;;;;;;;;;;:27;10273:7;10254:27;;;;;;;;;;;;;;;:35;;;;10303:9;10299:76;;;10349:7;10333:31;;10342:5;10333:31;;;10358:5;10333:31;;;;;;:::i;:::-;;;;;;;;10299:76;9949:432;;;;:::o;6271:1107::-;6376:1;6360:18;;:4;:18;;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;;;;;6356:540;;;6548:19;6570:9;:15;6580:4;6570:15;;;;;;;;;;;;;;;;6548:37;;6617:5;6603:11;:19;6599:115;;;6674:4;6680:11;6693:5;6649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6599:115;6866:5;6852:11;:19;6834:9;:15;6844:4;6834:15;;;;;;;;;;;;;;;:37;;;;6534:362;6356:540;6924:1;6910:16;;:2;:16;;;6906:425;;7089:5;7073:12;;:21;;;;;;;;;;;6906:425;;;7301:5;7284:9;:13;7294:2;7284:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6906:425;7361:2;7346:25;;7355:4;7346:25;;;7365:5;7346:25;;;;;;:::i;:::-;;;;;;;;6271:1107;;;:::o;7:99:12:-;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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:442::-;6681:4;6719:2;6708:9;6704:18;6696:26;;6732:71;6800:1;6789:9;6785:17;6776:6;6732:71;:::i;:::-;6813:72;6881:2;6870:9;6866:18;6857:6;6813:72;:::i;:::-;6895;6963:2;6952:9;6948:18;6939:6;6895:72;:::i;:::-;6532:442;;;;;;:::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", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b" + } + }, + "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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"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.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"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.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Tokens/WETH.sol\":\"USDC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/Tokens/WETH.sol\":{\"keccak256\":\"0x0d3c8261b06268ba4472ba62fad0e6bff705ab0adf7072f57eebc8254a7094f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9ef25ae9665760bb849d92420286fed9b5b09683f19fee811471a630d98caf0\",\"dweb:/ipfs/QmNZnQabRJc1GN8V26ziFW8XJs5VLFmUPSyCR6wmRtiRgm\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/contracts/ignition/deployments/chain-20180427/journal.jsonl b/contracts/ignition/deployments/chain-20180427/journal.jsonl new file mode 100644 index 0000000..7b1c229 --- /dev/null +++ b/contracts/ignition/deployments/chain-20180427/journal.jsonl @@ -0,0 +1,4 @@ + +{"chainId":20180427,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"TokenSwap#USDC","constructorArgs":[],"contractName":"USDC","dependencies":[],"from":"0xafbbcada05ab78b3706b463720ed6b94026eaa43","futureId":"TokenSwap#USDC","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"TokenSwap#USDC","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b50336040518060400160405280600481526020017f55534443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61119a80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063dd62ed3e14610250578063f2fde38b14610280576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce5671461017057806340c10f191461018e575b600080fd5b6100dc61029c565b6040516100e99190610dee565b60405180910390f35b61010c60048036038101906101079190610ea9565b61032e565b6040516101199190610f04565b60405180910390f35b61012a610351565b6040516101379190610f2e565b60405180910390f35b61015a60048036038101906101559190610f49565b61035b565b6040516101679190610f04565b60405180910390f35b61017861038a565b6040516101859190610fb8565b60405180910390f35b6101a860048036038101906101a39190610ea9565b610393565b005b6101c460048036038101906101bf9190610fd3565b6103a9565b6040516101d19190610f2e565b60405180910390f35b6101e26103f1565b005b6101ec610405565b6040516101f9919061100f565b60405180910390f35b61020a61042f565b6040516102179190610dee565b60405180910390f35b61023a60048036038101906102359190610ea9565b6104c1565b6040516102479190610f04565b60405180910390f35b61026a6004803603810190610265919061102a565b6104e4565b6040516102779190610f2e565b60405180910390f35b61029a60048036038101906102959190610fd3565b61056b565b005b6060600380546102ab90611099565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611099565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b6000806103396105f1565b90506103468185856105f9565b600191505092915050565b6000600254905090565b6000806103666105f1565b905061037385828561060b565b61037e85858561069f565b60019150509392505050565b60006012905090565b61039b610793565b6103a5828261081a565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103f9610793565b610403600061089c565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461043e90611099565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90611099565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b6000806104cc6105f1565b90506104d981858561069f565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610573610793565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105e55760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105dc919061100f565b60405180910390fd5b6105ee8161089c565b50565b600033905090565b6106068383836001610962565b505050565b600061061784846104e4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106995781811015610689578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610680939291906110ca565b60405180910390fd5b61069884848484036000610962565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107115760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610708919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107835760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161077a919061100f565b60405180910390fd5b61078e838383610b39565b505050565b61079b6105f1565b73ffffffffffffffffffffffffffffffffffffffff166107b9610405565b73ffffffffffffffffffffffffffffffffffffffff1614610818576107dc6105f1565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161080f919061100f565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088c5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610883919061100f565b60405180910390fd5b61089860008383610b39565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109d45760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109cb919061100f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a465760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a3d919061100f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b33578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b2a9190610f2e565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b8b578060026000828254610b7f9190611130565b92505081905550610c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c17578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c0e939291906110ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca75780600260008282540392505081905550610cf4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d519190610f2e565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d98578082015181840152602081019050610d7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000610dc082610d5e565b610dca8185610d69565b9350610dda818560208601610d7a565b610de381610da4565b840191505092915050565b60006020820190508181036000830152610e088184610db5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4082610e15565b9050919050565b610e5081610e35565b8114610e5b57600080fd5b50565b600081359050610e6d81610e47565b92915050565b6000819050919050565b610e8681610e73565b8114610e9157600080fd5b50565b600081359050610ea381610e7d565b92915050565b60008060408385031215610ec057610ebf610e10565b5b6000610ece85828601610e5e565b9250506020610edf85828601610e94565b9150509250929050565b60008115159050919050565b610efe81610ee9565b82525050565b6000602082019050610f196000830184610ef5565b92915050565b610f2881610e73565b82525050565b6000602082019050610f436000830184610f1f565b92915050565b600080600060608486031215610f6257610f61610e10565b5b6000610f7086828701610e5e565b9350506020610f8186828701610e5e565b9250506040610f9286828701610e94565b9150509250925092565b600060ff82169050919050565b610fb281610f9c565b82525050565b6000602082019050610fcd6000830184610fa9565b92915050565b600060208284031215610fe957610fe8610e10565b5b6000610ff784828501610e5e565b91505092915050565b61100981610e35565b82525050565b60006020820190506110246000830184611000565b92915050565b6000806040838503121561104157611040610e10565b5b600061104f85828601610e5e565b925050602061106085828601610e5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110b157607f821691505b6020821081036110c4576110c361106a565b5b50919050565b60006060820190506110df6000830186611000565b6110ec6020830185610f1f565b6110f96040830184610f1f565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113b82610e73565b915061114683610e73565b925082820190508082111561115e5761115d611101565b5b9291505056fea2646970667358221220e971d9ed893d74cd1d8244c7aeb5547151f3d5e345973751da2da032b2dd61d264736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} \ No newline at end of file diff --git a/contracts/ignition/modules/Deploy.ts b/contracts/ignition/modules/Deploy.ts index 8774b95..623812b 100644 --- a/contracts/ignition/modules/Deploy.ts +++ b/contracts/ignition/modules/Deploy.ts @@ -14,8 +14,11 @@ const deployment = buildModule("TokenSwap", (m) => { const mintAmount = parseInt("1000000000", 18); // 1,000,000,000 with 18 decimals m.call(usdc, "mint", [threeSwap, mintAmount]); + console.log("Minted USDC"); m.call(wbtc, "mint", [threeSwap, mintAmount]); + console.log("Minted WBTC"); m.call(weth, "mint", [threeSwap, mintAmount]); + console.log("Minted WETH"); console.log("Deployment complete"); return { threeSwap }; });