{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdUtils.sol","id":12483,"exportedSymbols":{"IMulticall3":[32954],"MockERC20":[33531],"MockERC721":[34136],"StdUtils":[12482],"VmSafe":[15724]},"nodeType":"SourceUnit","src":"32:10624:17","nodes":[{"id":11698,"nodeType":"PragmaDirective","src":"32:31:17","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11699,"nodeType":"PragmaDirective","src":"65:33:17","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11701,"nodeType":"ImportDirective","src":"100:57:17","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":12483,"sourceUnit":32955,"symbolAliases":[{"foreign":{"id":11700,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32954,"src":"108:11:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11703,"nodeType":"ImportDirective","src":"158:48:17","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":12483,"sourceUnit":33532,"symbolAliases":[{"foreign":{"id":11702,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33531,"src":"166:9:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11705,"nodeType":"ImportDirective","src":"207:50:17","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":12483,"sourceUnit":34151,"symbolAliases":[{"foreign":{"id":11704,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34136,"src":"215:10:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11707,"nodeType":"ImportDirective","src":"258:32:17","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12483,"sourceUnit":16312,"symbolAliases":[{"foreign":{"id":11706,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"266:6:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12482,"nodeType":"ContractDefinition","src":"292:10363:17","nodes":[{"id":11713,"nodeType":"VariableDeclaration","src":"535:96:17","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32954","typeString":"contract IMulticall3"},"typeName":{"id":11709,"nodeType":"UserDefinedTypeName","pathNode":{"id":11708,"name":"IMulticall3","nodeType":"IdentifierPath","referencedDeclaration":32954,"src":"535:11:17"},"referencedDeclaration":32954,"src":"535:11:17","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32954","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11710,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32954,"src":"576:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32954_$","typeString":"type(contract IMulticall3)"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"576:55:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32954","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11730,"nodeType":"VariableDeclaration","src":"637:92:17","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"},"typeName":{"id":11715,"nodeType":"UserDefinedTypeName","pathNode":{"id":11714,"name":"VmSafe","nodeType":"IdentifierPath","referencedDeclaration":15724,"src":"637:6:17"},"referencedDeclaration":15724,"src":"637:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11723,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:17","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"697:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11721,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:17","typeDescriptions":{}}},"id":11726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"689:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11719,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:17","typeDescriptions":{}}},"id":11727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"681:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11717,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:17","typeDescriptions":{}}},"id":11728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"673:55:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11716,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"666:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15724_$","typeString":"type(contract VmSafe)"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"666:63:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11733,"nodeType":"VariableDeclaration","src":"735:86:17","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11731,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11736,"nodeType":"VariableDeclaration","src":"827:127:17","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11734,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:17","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11739,"nodeType":"VariableDeclaration","src":"960:129:17","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11737,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:17","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11742,"nodeType":"VariableDeclaration","src":"1095:125:17","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11740,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:17","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11745,"nodeType":"VariableDeclaration","src":"1339:85:17","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:17","scope":12482,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11743,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11875,"nodeType":"FunctionDefinition","src":"1646:1263:17","nodes":[],"body":{"id":11874,"nodeType":"Block","src":"1746:1163:17","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11757,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"1764:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11758,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"1771:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1756:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1756:85:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11762,"nodeType":"ExpressionStatement","src":"1756:85:17"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11763,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2070:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11764,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2075:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11766,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2082:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11767,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2087:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11772,"nodeType":"IfStatement","src":"2066:34:17","trueBody":{"expression":{"id":11770,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2099:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11755,"id":11771,"nodeType":"Return","src":"2092:8:17"}},{"assignments":[11774],"declarations":[{"constant":false,"id":11774,"mutability":"mutable","name":"size","nameLocation":"2119:4:17","nodeType":"VariableDeclaration","scope":11874,"src":"2111:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11775,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2126:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11776,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2132:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:17"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11781,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2329:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:17","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11784,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"2339:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11785,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2346:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11792,"nodeType":"IfStatement","src":"2325:38:17","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11788,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2356:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11789,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2362:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11755,"id":11791,"nodeType":"Return","src":"2349:14:17"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11793,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2377:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11794,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"2382:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:17","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11798,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"2401:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11799,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"2408:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11800,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2422:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11811,"nodeType":"IfStatement","src":"2373:82:17","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11804,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2432:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11805,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"2439:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11806,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2453:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11808,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11755,"id":11810,"nodeType":"Return","src":"2425:30:17"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11812,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2555:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11813,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2559:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11842,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2734:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11843,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2738:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11872,"nodeType":"IfStatement","src":"2730:173:17","trueBody":{"id":11871,"nodeType":"Block","src":"2743:160:17","statements":[{"assignments":[11846],"declarations":[{"constant":false,"id":11846,"mutability":"mutable","name":"diff","nameLocation":"2765:4:17","nodeType":"VariableDeclaration","scope":11871,"src":"2757:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11845,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11850,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11847,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2772:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11848,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2778:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:17"},{"assignments":[11852],"declarations":[{"constant":false,"id":11852,"mutability":"mutable","name":"rem","nameLocation":"2801:3:17","nodeType":"VariableDeclaration","scope":11871,"src":"2793:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11851,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11856,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11853,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11846,"src":"2807:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11854,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"2814:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11857,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11852,"src":"2836:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11862,"nodeType":"IfStatement","src":"2832:24:17","trueBody":{"expression":{"id":11860,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2853:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11755,"id":11861,"nodeType":"Return","src":"2846:10:17"}},{"expression":{"id":11869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11863,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11754,"src":"2870:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11864,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2879:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11865,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11852,"src":"2885:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11870,"nodeType":"ExpressionStatement","src":"2870:22:17"}]}},"id":11873,"nodeType":"IfStatement","src":"2551:352:17","trueBody":{"id":11841,"nodeType":"Block","src":"2564:160:17","statements":[{"assignments":[11816],"declarations":[{"constant":false,"id":11816,"mutability":"mutable","name":"diff","nameLocation":"2586:4:17","nodeType":"VariableDeclaration","scope":11841,"src":"2578:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11815,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11820,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11817,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11747,"src":"2593:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11818,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2597:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:17"},{"assignments":[11822],"declarations":[{"constant":false,"id":11822,"mutability":"mutable","name":"rem","nameLocation":"2622:3:17","nodeType":"VariableDeclaration","scope":11841,"src":"2614:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11821,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11826,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11823,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11816,"src":"2628:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11824,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11774,"src":"2635:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11827,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"2657:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11832,"nodeType":"IfStatement","src":"2653:24:17","trueBody":{"expression":{"id":11830,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11751,"src":"2674:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11755,"id":11831,"nodeType":"Return","src":"2667:10:17"}},{"expression":{"id":11839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11833,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11754,"src":"2691:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11834,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11749,"src":"2700:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11835,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11822,"src":"2706:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11840,"nodeType":"ExpressionStatement","src":"2691:22:17"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:17","parameters":{"id":11752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11747,"mutability":"mutable","name":"x","nameLocation":"1670:1:17","nodeType":"VariableDeclaration","scope":11875,"src":"1662:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11746,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11749,"mutability":"mutable","name":"min","nameLocation":"1681:3:17","nodeType":"VariableDeclaration","scope":11875,"src":"1673:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11748,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11751,"mutability":"mutable","name":"max","nameLocation":"1694:3:17","nodeType":"VariableDeclaration","scope":11875,"src":"1686:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11750,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1661:37:17"},"returnParameters":{"id":11755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11754,"mutability":"mutable","name":"result","nameLocation":"1738:6:17","nodeType":"VariableDeclaration","scope":11875,"src":"1730:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11753,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:16:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11900,"nodeType":"FunctionDefinition","src":"2915:199:17","nodes":[],"body":{"id":11899,"nodeType":"Block","src":"3014:100:17","nodes":[],"statements":[{"expression":{"id":11892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11884,"src":"3024:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11888,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11877,"src":"3040:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11889,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11879,"src":"3043:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11890,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"3048:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11887,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11875,12022],"referencedDeclaration":11875,"src":"3033:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3033:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:28:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11893,"nodeType":"ExpressionStatement","src":"3024:28:17"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3084:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"id":11896,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11884,"src":"3100:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11894,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[12447,12464,12481],"referencedDeclaration":12464,"src":"3062:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":11897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3062:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11898,"nodeType":"ExpressionStatement","src":"3062:45:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"2924:5:17","parameters":{"id":11882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11877,"mutability":"mutable","name":"x","nameLocation":"2938:1:17","nodeType":"VariableDeclaration","scope":11900,"src":"2930:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11876,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11879,"mutability":"mutable","name":"min","nameLocation":"2949:3:17","nodeType":"VariableDeclaration","scope":11900,"src":"2941:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11878,"name":"uint256","nodeType":"ElementaryTypeName","src":"2941:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11881,"mutability":"mutable","name":"max","nameLocation":"2962:3:17","nodeType":"VariableDeclaration","scope":11900,"src":"2954:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11880,"name":"uint256","nodeType":"ElementaryTypeName","src":"2954:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:37:17"},"returnParameters":{"id":11885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11884,"mutability":"mutable","name":"result","nameLocation":"3006:6:17","nodeType":"VariableDeclaration","scope":11900,"src":"2998:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11883,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2997:16:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12022,"nodeType":"FunctionDefinition","src":"3120:1145:17","nodes":[],"body":{"id":12021,"nodeType":"Block","src":"3216:1049:17","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11912,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"3234:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11913,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"3241:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3234:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3246:61:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""},"value":"StdUtils bound(int256,int256,int256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""}],"id":11911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3226:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3226:82:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11917,"nodeType":"ExpressionStatement","src":"3226:82:17"},{"assignments":[11919],"declarations":[{"constant":false,"id":11919,"mutability":"mutable","name":"_x","nameLocation":"3744:2:17","nodeType":"VariableDeclaration","scope":12021,"src":"3736:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11918,"name":"uint256","nodeType":"ElementaryTypeName","src":"3736:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11941,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11920,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11902,"src":"3749:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11935,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11902,"src":"3803:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11933,"name":"uint256","nodeType":"ElementaryTypeName","src":"3795:7:17","typeDescriptions":{}}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3795:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11937,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"3808:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3795:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11939,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3794:29:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3749:74:17","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11923,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"3758:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3775:11:17","subExpression":{"arguments":[{"id":11926,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11902,"src":"3784:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3776:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3776:7:17","typeDescriptions":{}}},"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3776:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3758:28:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3789:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3758:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11932,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3757:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3736:87:17"},{"assignments":[11943],"declarations":[{"constant":false,"id":11943,"mutability":"mutable","name":"_min","nameLocation":"3841:4:17","nodeType":"VariableDeclaration","scope":12021,"src":"3833:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11965,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11944,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"3848:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3848:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11959,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"3906:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3898:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11957,"name":"uint256","nodeType":"ElementaryTypeName","src":"3898:7:17","typeDescriptions":{}}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11961,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"3913:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3898:29:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11963,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3897:31:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3848:80:17","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11947,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"3859:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3876:13:17","subExpression":{"arguments":[{"id":11950,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"3885:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3877:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11948,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:17","typeDescriptions":{}}},"id":11951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3877:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:30:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3859:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11956,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3858:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3833:95:17"},{"assignments":[11967],"declarations":[{"constant":false,"id":11967,"mutability":"mutable","name":"_max","nameLocation":"3946:4:17","nodeType":"VariableDeclaration","scope":12021,"src":"3938:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11966,"name":"uint256","nodeType":"ElementaryTypeName","src":"3938:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11989,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11968,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"3953:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3959:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3953:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11983,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"4011:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4003:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:17","typeDescriptions":{}}},"id":11984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4003:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11985,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"4018:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4003:29:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11987,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4002:31:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3953:80:17","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11971,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"3964:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3981:13:17","subExpression":{"arguments":[{"id":11974,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"3990:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3982:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11972,"name":"uint256","nodeType":"ElementaryTypeName","src":"3982:7:17","typeDescriptions":{}}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3982:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:30:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3997:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3964:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11980,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3938:95:17"},{"assignments":[11991],"declarations":[{"constant":false,"id":11991,"mutability":"mutable","name":"y","nameLocation":"4052:1:17","nodeType":"VariableDeclaration","scope":12021,"src":"4044:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11990,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11997,"initialValue":{"arguments":[{"id":11993,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11919,"src":"4063:2:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11994,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11943,"src":"4067:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11995,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"4073:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11992,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11875,12022],"referencedDeclaration":11875,"src":"4056:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4056:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:34:17"},{"expression":{"id":12019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11998,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11909,"src":"4166:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11999,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"4175:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12000,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"4179:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4175:18:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12014,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"4239:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12015,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"4243:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4232:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12012,"name":"int256","nodeType":"ElementaryTypeName","src":"4232:6:17","typeDescriptions":{}}},"id":12017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4232:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4175:83:17","trueExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"4203:21:17","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12004,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"4205:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12005,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"4222:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4205:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12007,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4204:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4227:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4203:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4196:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":12002,"name":"int256","nodeType":"ElementaryTypeName","src":"4196:6:17","typeDescriptions":{}}},"id":12011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4196:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4166:92:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12020,"nodeType":"ExpressionStatement","src":"4166:92:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"3129:6:17","parameters":{"id":11907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11902,"mutability":"mutable","name":"x","nameLocation":"3143:1:17","nodeType":"VariableDeclaration","scope":12022,"src":"3136:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11901,"name":"int256","nodeType":"ElementaryTypeName","src":"3136:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11904,"mutability":"mutable","name":"min","nameLocation":"3153:3:17","nodeType":"VariableDeclaration","scope":12022,"src":"3146:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11903,"name":"int256","nodeType":"ElementaryTypeName","src":"3146:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11906,"mutability":"mutable","name":"max","nameLocation":"3165:3:17","nodeType":"VariableDeclaration","scope":12022,"src":"3158:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11905,"name":"int256","nodeType":"ElementaryTypeName","src":"3158:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3135:34:17"},"returnParameters":{"id":11910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11909,"mutability":"mutable","name":"result","nameLocation":"3208:6:17","nodeType":"VariableDeclaration","scope":12022,"src":"3201:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11908,"name":"int256","nodeType":"ElementaryTypeName","src":"3201:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3200:15:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12050,"nodeType":"FunctionDefinition","src":"4271:208:17","nodes":[],"body":{"id":12049,"nodeType":"Block","src":"4366:113:17","nodes":[],"statements":[{"expression":{"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12033,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12031,"src":"4376:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12035,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"4392:1:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":12036,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12026,"src":"4395:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":12037,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"4400:3:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12034,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11875,12022],"referencedDeclaration":12022,"src":"4385:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":12038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4385:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4376:28:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12040,"nodeType":"ExpressionStatement","src":"4376:28:17"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":12042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4436:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"arguments":[{"id":12045,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12031,"src":"4464:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":12043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"4452:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"id":12044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14075,"src":"4452:11:17","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":12046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4452:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12041,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[12447,12464,12481],"referencedDeclaration":12481,"src":"4414:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure"}},"id":12047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4414:58:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12048,"nodeType":"ExpressionStatement","src":"4414:58:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"4280:5:17","parameters":{"id":12029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12024,"mutability":"mutable","name":"x","nameLocation":"4293:1:17","nodeType":"VariableDeclaration","scope":12050,"src":"4286:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12023,"name":"int256","nodeType":"ElementaryTypeName","src":"4286:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":12026,"mutability":"mutable","name":"min","nameLocation":"4303:3:17","nodeType":"VariableDeclaration","scope":12050,"src":"4296:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12025,"name":"int256","nodeType":"ElementaryTypeName","src":"4296:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":12028,"mutability":"mutable","name":"max","nameLocation":"4315:3:17","nodeType":"VariableDeclaration","scope":12050,"src":"4308:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12027,"name":"int256","nodeType":"ElementaryTypeName","src":"4308:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4285:34:17"},"returnParameters":{"id":12032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12031,"mutability":"mutable","name":"result","nameLocation":"4358:6:17","nodeType":"VariableDeclaration","scope":12050,"src":"4351:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12030,"name":"int256","nodeType":"ElementaryTypeName","src":"4351:6:17","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4350:15:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12068,"nodeType":"FunctionDefinition","src":"4485:160:17","nodes":[],"body":{"id":12067,"nodeType":"Block","src":"4577:68:17","nodes":[],"statements":[{"expression":{"id":12065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12055,"src":"4587:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12059,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12052,"src":"4603:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":12060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4615:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12061,"name":"SECP256K1_ORDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11739,"src":"4618:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4636:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4618:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12058,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11875,12022],"referencedDeclaration":11875,"src":"4596:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":12064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4596:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4587:51:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12066,"nodeType":"ExpressionStatement","src":"4587:51:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boundPrivateKey","nameLocation":"4494:15:17","parameters":{"id":12053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12052,"mutability":"mutable","name":"privateKey","nameLocation":"4518:10:17","nodeType":"VariableDeclaration","scope":12068,"src":"4510:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12051,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4509:20:17"},"returnParameters":{"id":12056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12055,"mutability":"mutable","name":"result","nameLocation":"4569:6:17","nodeType":"VariableDeclaration","scope":12068,"src":"4561:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4561:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4560:16:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12102,"nodeType":"FunctionDefinition","src":"4651:259:17","nodes":[],"body":{"id":12101,"nodeType":"Block","src":"4728:182:17","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12076,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4746:1:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4746:8:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":12078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4758:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4746:14:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":12080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4762:55:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdUtils bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":12075,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4738:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4738:80:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12082,"nodeType":"ExpressionStatement","src":"4738:80:17"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":12089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4873:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12090,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4878:1:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4878:8:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4863:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":12087,"name":"bytes","nodeType":"ElementaryTypeName","src":"4867:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":12093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4863:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12094,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4889:1:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12085,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4846:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4846:16:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4846:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4894:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12096,"name":"uint256","nodeType":"ElementaryTypeName","src":"4894:7:17","typeDescriptions":{}}}],"id":12098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4893:9:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":12083,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4835:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4835:10:17","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4835:68:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12074,"id":12100,"nodeType":"Return","src":"4828:75:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToUint","nameLocation":"4660:11:17","parameters":{"id":12071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12070,"mutability":"mutable","name":"b","nameLocation":"4685:1:17","nodeType":"VariableDeclaration","scope":12102,"src":"4672:14:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12069,"name":"bytes","nodeType":"ElementaryTypeName","src":"4672:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4671:16:17"},"returnParameters":{"id":12074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12102,"src":"4719:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12072,"name":"uint256","nodeType":"ElementaryTypeName","src":"4719:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4718:9:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12123,"nodeType":"FunctionDefinition","src":"5144:281:17","nodes":[],"body":{"id":12122,"nodeType":"Block","src":"5247:178:17","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574654372656174654164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d707574654372656174654164647265737320696e73746561642e","id":12113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5279:81:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""},"value":"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""}],"id":12112,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[12447,12464,12481],"referencedDeclaration":12447,"src":"5257:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5257:104:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12115,"nodeType":"ExpressionStatement","src":"5257:104:17"},{"expression":{"arguments":[{"id":12118,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12105,"src":"5402:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12119,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12107,"src":"5412:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12116,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5378:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"id":12117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"computeCreateAddress","nodeType":"MemberAccess","referencedDeclaration":15566,"src":"5378:23:17","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) pure external returns (address)"}},"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5378:40:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12111,"id":12121,"nodeType":"Return","src":"5371:47:17"}]},"documentation":{"id":12103,"nodeType":"StructuredDocumentation","src":"4916:223:17","text":"@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"5153:20:17","parameters":{"id":12108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12105,"mutability":"mutable","name":"deployer","nameLocation":"5182:8:17","nodeType":"VariableDeclaration","scope":12123,"src":"5174:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12104,"name":"address","nodeType":"ElementaryTypeName","src":"5174:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12107,"mutability":"mutable","name":"nonce","nameLocation":"5200:5:17","nodeType":"VariableDeclaration","scope":12123,"src":"5192:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5192:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:33:17"},"returnParameters":{"id":12111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12123,"src":"5238:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12109,"name":"address","nodeType":"ElementaryTypeName","src":"5238:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5237:9:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12146,"nodeType":"FunctionDefinition","src":"5431:355:17","nodes":[],"body":{"id":12145,"nodeType":"Block","src":"5592:194:17","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":12135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5624:83:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":12134,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[12447,12464,12481],"referencedDeclaration":12447,"src":"5602:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5602:106:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12137,"nodeType":"ExpressionStatement","src":"5602:106:17"},{"expression":{"arguments":[{"id":12140,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12125,"src":"5750:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12141,"name":"initcodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12127,"src":"5756:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12142,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"5770:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12138,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5725:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"id":12139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15546,"src":"5725:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure external returns (address)"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5725:54:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12133,"id":12144,"nodeType":"Return","src":"5718:61:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5440:21:17","parameters":{"id":12130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12125,"mutability":"mutable","name":"salt","nameLocation":"5470:4:17","nodeType":"VariableDeclaration","scope":12146,"src":"5462:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5462:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12127,"mutability":"mutable","name":"initcodeHash","nameLocation":"5484:12:17","nodeType":"VariableDeclaration","scope":12146,"src":"5476:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5476:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12129,"mutability":"mutable","name":"deployer","nameLocation":"5506:8:17","nodeType":"VariableDeclaration","scope":12146,"src":"5498:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12128,"name":"address","nodeType":"ElementaryTypeName","src":"5498:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:54:17"},"returnParameters":{"id":12133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12146,"src":"5579:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12131,"name":"address","nodeType":"ElementaryTypeName","src":"5579:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5578:9:17"},"scope":12482,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":12167,"nodeType":"FunctionDefinition","src":"5895:283:17","nodes":[],"body":{"id":12166,"nodeType":"Block","src":"5994:184:17","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":12157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6026:83:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":12156,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[12447,12464,12481],"referencedDeclaration":12447,"src":"6004:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6004:106:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12159,"nodeType":"ExpressionStatement","src":"6004:106:17"},{"expression":{"arguments":[{"id":12162,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12149,"src":"6152:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12163,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12151,"src":"6158:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12160,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"6127:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15724","typeString":"contract VmSafe"}},"id":12161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15556,"src":"6127:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) pure external returns (address)"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6127:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12155,"id":12165,"nodeType":"Return","src":"6120:51:17"}]},"documentation":{"id":12147,"nodeType":"StructuredDocumentation","src":"5792:98:17","text":"@dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5904:21:17","parameters":{"id":12152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"mutability":"mutable","name":"salt","nameLocation":"5934:4:17","nodeType":"VariableDeclaration","scope":12167,"src":"5926:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5926:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12151,"mutability":"mutable","name":"initCodeHash","nameLocation":"5948:12:17","nodeType":"VariableDeclaration","scope":12167,"src":"5940:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5940:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5925:36:17"},"returnParameters":{"id":12155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12167,"src":"5985:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12153,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5984:9:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":12196,"nodeType":"FunctionDefinition","src":"6240:225:17","nodes":[],"body":{"id":12195,"nodeType":"Block","src":"6377:88:17","nodes":[],"statements":[{"expression":{"id":12185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12180,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"6387:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":12183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6394:13:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC20_$33531_$","typeString":"function () returns (contract MockERC20)"},"typeName":{"id":12182,"nodeType":"UserDefinedTypeName","pathNode":{"id":12181,"name":"MockERC20","nodeType":"IdentifierPath","referencedDeclaration":33531,"src":"6398:9:17"},"referencedDeclaration":33531,"src":"6398:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}}},"id":12184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6394:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}},"src":"6387:22:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}},"id":12186,"nodeType":"ExpressionStatement","src":"6387:22:17"},{"expression":{"arguments":[{"id":12190,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12170,"src":"6435:4:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12191,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12172,"src":"6441:6:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12192,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12174,"src":"6449:8:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":12187,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"6419:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}},"id":12189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":33099,"src":"6419:15:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (string memory,string memory,uint8) external"}},"id":12193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6419:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12194,"nodeType":"ExpressionStatement","src":"6419:39:17"}]},"documentation":{"id":12168,"nodeType":"StructuredDocumentation","src":"6184:51:17","text":"@dev returns an initialized mock ERC20 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC20","nameLocation":"6249:15:17","parameters":{"id":12175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12170,"mutability":"mutable","name":"name","nameLocation":"6279:4:17","nodeType":"VariableDeclaration","scope":12196,"src":"6265:18:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12169,"name":"string","nodeType":"ElementaryTypeName","src":"6265:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12172,"mutability":"mutable","name":"symbol","nameLocation":"6299:6:17","nodeType":"VariableDeclaration","scope":12196,"src":"6285:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12171,"name":"string","nodeType":"ElementaryTypeName","src":"6285:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12174,"mutability":"mutable","name":"decimals","nameLocation":"6313:8:17","nodeType":"VariableDeclaration","scope":12196,"src":"6307:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12173,"name":"uint8","nodeType":"ElementaryTypeName","src":"6307:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6264:58:17"},"returnParameters":{"id":12179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12178,"mutability":"mutable","name":"mock","nameLocation":"6367:4:17","nodeType":"VariableDeclaration","scope":12196,"src":"6357:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"},"typeName":{"id":12177,"nodeType":"UserDefinedTypeName","pathNode":{"id":12176,"name":"MockERC20","nodeType":"IdentifierPath","referencedDeclaration":33531,"src":"6357:9:17"},"referencedDeclaration":33531,"src":"6357:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33531","typeString":"contract MockERC20"}},"visibility":"internal"}],"src":"6356:16:17"},"scope":12482,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12222,"nodeType":"FunctionDefinition","src":"6528:182:17","nodes":[],"body":{"id":12221,"nodeType":"Block","src":"6631:79:17","nodes":[],"statements":[{"expression":{"id":12212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12207,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12205,"src":"6641:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":12210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6648:14:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC721_$34136_$","typeString":"function () returns (contract MockERC721)"},"typeName":{"id":12209,"nodeType":"UserDefinedTypeName","pathNode":{"id":12208,"name":"MockERC721","nodeType":"IdentifierPath","referencedDeclaration":34136,"src":"6652:10:17"},"referencedDeclaration":34136,"src":"6652:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}}},"id":12211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6648:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}},"src":"6641:23:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}},"id":12213,"nodeType":"ExpressionStatement","src":"6641:23:17"},{"expression":{"arguments":[{"id":12217,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12199,"src":"6690:4:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12218,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12201,"src":"6696:6:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12214,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12205,"src":"6674:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}},"id":12216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":33694,"src":"6674:15:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":12219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6674:29:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12220,"nodeType":"ExpressionStatement","src":"6674:29:17"}]},"documentation":{"id":12197,"nodeType":"StructuredDocumentation","src":"6471:52:17","text":"@dev returns an initialized mock ERC721 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC721","nameLocation":"6537:16:17","parameters":{"id":12202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12199,"mutability":"mutable","name":"name","nameLocation":"6568:4:17","nodeType":"VariableDeclaration","scope":12222,"src":"6554:18:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12198,"name":"string","nodeType":"ElementaryTypeName","src":"6554:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12201,"mutability":"mutable","name":"symbol","nameLocation":"6588:6:17","nodeType":"VariableDeclaration","scope":12222,"src":"6574:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12200,"name":"string","nodeType":"ElementaryTypeName","src":"6574:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6553:42:17"},"returnParameters":{"id":12206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12205,"mutability":"mutable","name":"mock","nameLocation":"6625:4:17","nodeType":"VariableDeclaration","scope":12222,"src":"6614:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"},"typeName":{"id":12204,"nodeType":"UserDefinedTypeName","pathNode":{"id":12203,"name":"MockERC721","nodeType":"IdentifierPath","referencedDeclaration":34136,"src":"6614:10:17"},"referencedDeclaration":34136,"src":"6614:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$34136","typeString":"contract MockERC721"}},"visibility":"internal"}],"src":"6613:17:17"},"scope":12482,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":12236,"nodeType":"FunctionDefinition","src":"6934:135:17","nodes":[],"body":{"id":12235,"nodeType":"Block","src":"7015:54:17","nodes":[],"statements":[{"expression":{"arguments":[{"id":12231,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12225,"src":"7045:12:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"","id":12232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":12230,"name":"hashInitCode","nodeType":"Identifier","overloadedDeclarations":[12236,12255],"referencedDeclaration":12255,"src":"7032:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory,bytes memory) pure returns (bytes32)"}},"id":12233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7032:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12229,"id":12234,"nodeType":"Return","src":"7025:37:17"}]},"documentation":{"id":12223,"nodeType":"StructuredDocumentation","src":"6716:213:17","text":"@dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"6943:12:17","parameters":{"id":12226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12225,"mutability":"mutable","name":"creationCode","nameLocation":"6969:12:17","nodeType":"VariableDeclaration","scope":12236,"src":"6956:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12224,"name":"bytes","nodeType":"ElementaryTypeName","src":"6956:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6955:27:17"},"returnParameters":{"id":12229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12236,"src":"7006:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7006:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7005:9:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":12255,"nodeType":"FunctionDefinition","src":"7342:171:17","nodes":[],"body":{"id":12254,"nodeType":"Block","src":"7442:71:17","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":12249,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12239,"src":"7486:12:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12250,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12241,"src":"7500:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7469:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7469:16:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7469:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12246,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7459:9:17","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7459:47:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12245,"id":12253,"nodeType":"Return","src":"7452:54:17"}]},"documentation":{"id":12237,"nodeType":"StructuredDocumentation","src":"7075:262:17","text":"@dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode\n @param args the ABI-encoded arguments to the constructor of C"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"7351:12:17","parameters":{"id":12242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12239,"mutability":"mutable","name":"creationCode","nameLocation":"7377:12:17","nodeType":"VariableDeclaration","scope":12255,"src":"7364:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12238,"name":"bytes","nodeType":"ElementaryTypeName","src":"7364:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12241,"mutability":"mutable","name":"args","nameLocation":"7404:4:17","nodeType":"VariableDeclaration","scope":12255,"src":"7391:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12240,"name":"bytes","nodeType":"ElementaryTypeName","src":"7391:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7363:46:17"},"returnParameters":{"id":12245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12255,"src":"7433:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7433:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7432:9:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":12369,"nodeType":"FunctionDefinition","src":"7624:1124:17","nodes":[],"body":{"id":12368,"nodeType":"Block","src":"7774:974:17","nodes":[],"statements":[{"assignments":[12267],"declarations":[{"constant":false,"id":12267,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"7792:13:17","nodeType":"VariableDeclaration","scope":12368,"src":"7784:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12266,"name":"uint256","nodeType":"ElementaryTypeName","src":"7784:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12268,"nodeType":"VariableDeclarationStatement","src":"7784:21:17"},{"AST":{"nodeType":"YulBlock","src":"7824:59:17","statements":[{"nodeType":"YulAssignment","src":"7838:35:17","value":{"arguments":[{"name":"token","nodeType":"YulIdentifier","src":"7867:5:17"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"7855:11:17"},"nodeType":"YulFunctionCall","src":"7855:18:17"},"variableNames":[{"name":"tokenCodeSize","nodeType":"YulIdentifier","src":"7838:13:17"}]}]},"evmVersion":"london","externalReferences":[{"declaration":12257,"isOffset":false,"isSlot":false,"src":"7867:5:17","valueSize":1},{"declaration":12267,"isOffset":false,"isSlot":false,"src":"7838:13:17","valueSize":1}],"id":12269,"nodeType":"InlineAssembly","src":"7815:68:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12271,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"7900:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7916:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7900:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320676574546f6b656e42616c616e63657328616464726573732c616464726573735b5d293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":12274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7919:80:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""},"value":"StdUtils getTokenBalances(address,address[]): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""}],"id":12270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7892:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7892:108:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12276,"nodeType":"ExpressionStatement","src":"7892:108:17"},{"assignments":[12278],"declarations":[{"constant":false,"id":12278,"mutability":"mutable","name":"length","nameLocation":"8075:6:17","nodeType":"VariableDeclaration","scope":12368,"src":"8067:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12277,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12281,"initialValue":{"expression":{"id":12279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12260,"src":"8084:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8084:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8067:33:17"},{"assignments":[12287],"declarations":[{"constant":false,"id":12287,"mutability":"mutable","name":"calls","nameLocation":"8136:5:17","nodeType":"VariableDeclaration","scope":12368,"src":"8110:31:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":12285,"nodeType":"UserDefinedTypeName","pathNode":{"id":12284,"name":"IMulticall3.Call","nodeType":"IdentifierPath","referencedDeclaration":32799,"src":"8110:16:17"},"referencedDeclaration":32799,"src":"8110:16:17","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32799_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":12286,"nodeType":"ArrayTypeName","src":"8110:18:17","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"id":12294,"initialValue":{"arguments":[{"id":12292,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"8167:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8144:22:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall3.Call memory[] memory)"},"typeName":{"baseType":{"id":12289,"nodeType":"UserDefinedTypeName","pathNode":{"id":12288,"name":"IMulticall3.Call","nodeType":"IdentifierPath","referencedDeclaration":32799,"src":"8148:16:17"},"referencedDeclaration":32799,"src":"8148:16:17","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32799_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":12290,"nodeType":"ArrayTypeName","src":"8148:18:17","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}}},"id":12293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8144:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8110:64:17"},{"body":{"id":12322,"nodeType":"Block","src":"8221:189:17","statements":[{"expression":{"id":12320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12305,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12287,"src":"8293:5:17","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"id":12307,"indexExpression":{"id":12306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12296,"src":"8299:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8293:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32799_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12310,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12257,"src":"8330:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783730613038323331","id":12313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8370:10:17","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"components":[{"baseExpression":{"id":12314,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12260,"src":"8383:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":12316,"indexExpression":{"id":12315,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12296,"src":"8393:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8383:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8382:14:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8347:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"8347:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":12318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8347:50:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12308,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32954,"src":"8304:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32954_$","typeString":"type(contract IMulticall3)"}},"id":12309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":32799,"src":"8304:16:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Call_$32799_storage_ptr_$","typeString":"type(struct IMulticall3.Call storage pointer)"}},"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["target","callData"],"nodeType":"FunctionCall","src":"8304:95:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32799_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"src":"8293:106:17","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32799_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"id":12321,"nodeType":"ExpressionStatement","src":"8293:106:17"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12296,"src":"8204:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12300,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"8208:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8204:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12323,"initializationExpression":{"assignments":[12296],"declarations":[{"constant":false,"id":12296,"mutability":"mutable","name":"i","nameLocation":"8197:1:17","nodeType":"VariableDeclaration","scope":12323,"src":"8189:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12295,"name":"uint256","nodeType":"ElementaryTypeName","src":"8189:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12298,"initialValue":{"hexValue":"30","id":12297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8201:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8189:13:17"},"loopExpression":{"expression":{"id":12303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8216:3:17","subExpression":{"id":12302,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12296,"src":"8218:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12304,"nodeType":"ExpressionStatement","src":"8216:3:17"},"nodeType":"ForStatement","src":"8184:226:17"},{"assignments":[null,12328],"declarations":[null,{"constant":false,"id":12328,"mutability":"mutable","name":"returnData","nameLocation":"8474:10:17","nodeType":"VariableDeclaration","scope":12368,"src":"8459:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12326,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12327,"nodeType":"ArrayTypeName","src":"8459:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":12333,"initialValue":{"arguments":[{"id":12331,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12287,"src":"8508:5:17","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}],"expression":{"id":12329,"name":"multicall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11713,"src":"8488:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32954","typeString":"contract IMulticall3"}},"id":12330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"aggregate","nodeType":"MemberAccess","referencedDeclaration":32832,"src":"8488:19:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_struct$_Call_$32799_memory_ptr_$dyn_memory_ptr_$returns$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct IMulticall3.Call memory[] memory) payable external returns (uint256,bytes memory[] memory)"}},"id":12332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8488:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(uint256,bytes memory[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8456:58:17"},{"expression":{"id":12340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12334,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"8588:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12338,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"8613:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8599:13:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":12335,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12336,"nodeType":"ArrayTypeName","src":"8603:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":12339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8599:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8588:32:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":12341,"nodeType":"ExpressionStatement","src":"8588:32:17"},{"body":{"id":12366,"nodeType":"Block","src":"8667:75:17","statements":[{"expression":{"id":12364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12352,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"8681:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":12354,"indexExpression":{"id":12353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"8690:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8681:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":12357,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12328,"src":"8706:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":12359,"indexExpression":{"id":12358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"8717:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8706:13:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12360,"name":"uint256","nodeType":"ElementaryTypeName","src":"8722:7:17","typeDescriptions":{}}}],"id":12362,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":12355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8695:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"8695:10:17","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8695:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8681:50:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12365,"nodeType":"ExpressionStatement","src":"8681:50:17"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"8650:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12347,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12278,"src":"8654:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8650:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12367,"initializationExpression":{"assignments":[12343],"declarations":[{"constant":false,"id":12343,"mutability":"mutable","name":"i","nameLocation":"8643:1:17","nodeType":"VariableDeclaration","scope":12367,"src":"8635:9:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12342,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12345,"initialValue":{"hexValue":"30","id":12344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8635:13:17"},"loopExpression":{"expression":{"id":12350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8662:3:17","subExpression":{"id":12349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"8664:1:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12351,"nodeType":"ExpressionStatement","src":"8662:3:17"},"nodeType":"ForStatement","src":"8630:112:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTokenBalances","nameLocation":"7633:16:17","parameters":{"id":12261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12257,"mutability":"mutable","name":"token","nameLocation":"7658:5:17","nodeType":"VariableDeclaration","scope":12369,"src":"7650:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12256,"name":"address","nodeType":"ElementaryTypeName","src":"7650:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12260,"mutability":"mutable","name":"addresses","nameLocation":"7682:9:17","nodeType":"VariableDeclaration","scope":12369,"src":"7665:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12258,"name":"address","nodeType":"ElementaryTypeName","src":"7665:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12259,"nodeType":"ArrayTypeName","src":"7665:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7649:43:17"},"returnParameters":{"id":12265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12264,"mutability":"mutable","name":"balances","nameLocation":"7760:8:17","nodeType":"VariableDeclaration","scope":12369,"src":"7743:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12262,"name":"uint256","nodeType":"ElementaryTypeName","src":"7743:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12263,"nodeType":"ArrayTypeName","src":"7743:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7742:27:17"},"scope":12482,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":12388,"nodeType":"FunctionDefinition","src":"8968:144:17","nodes":[],"body":{"id":12387,"nodeType":"Block","src":"9051:61:17","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":12382,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"9092:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9084:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12380,"name":"uint256","nodeType":"ElementaryTypeName","src":"9084:7:17","typeDescriptions":{}}},"id":12383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9084:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9076:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":12378,"name":"uint160","nodeType":"ElementaryTypeName","src":"9076:7:17","typeDescriptions":{}}},"id":12384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9076:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":12377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9068:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12376,"name":"address","nodeType":"ElementaryTypeName","src":"9068:7:17","typeDescriptions":{}}},"id":12385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9068:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12375,"id":12386,"nodeType":"Return","src":"9061:44:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addressFromLast20Bytes","nameLocation":"8977:22:17","parameters":{"id":12372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12371,"mutability":"mutable","name":"bytesValue","nameLocation":"9008:10:17","nodeType":"VariableDeclaration","scope":12388,"src":"9000:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9000:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8999:20:17"},"returnParameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12388,"src":"9042:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12373,"name":"address","nodeType":"ElementaryTypeName","src":"9042:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9041:9:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":12405,"nodeType":"FunctionDefinition","src":"9407:235:17","nodes":[],"body":{"id":12404,"nodeType":"Block","src":"9580:62:17","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9599:37:17","statements":[{"nodeType":"YulAssignment","src":"9613:13:17","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"9622:4:17"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"9613:5:17"}]}]},"evmVersion":"london","externalReferences":[{"declaration":12394,"isOffset":false,"isSlot":false,"src":"9622:4:17","valueSize":1},{"declaration":12401,"isOffset":false,"isSlot":false,"src":"9613:5:17","valueSize":1}],"id":12403,"nodeType":"InlineAssembly","src":"9590:46:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"9416:25:17","parameters":{"id":12395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12394,"mutability":"mutable","name":"fnIn","nameLocation":"9479:4:17","nodeType":"VariableDeclaration","scope":12405,"src":"9442:41:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":12393,"nodeType":"FunctionTypeName","parameterTypes":{"id":12391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12393,"src":"9451:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12389,"name":"bytes","nodeType":"ElementaryTypeName","src":"9451:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9450:14:17"},"returnParameterTypes":{"id":12392,"nodeType":"ParameterList","parameters":[],"src":"9479:0:17"},"src":"9442:41:17","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"9441:43:17"},"returnParameters":{"id":12402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12401,"mutability":"mutable","name":"fnOut","nameLocation":"9569:5:17","nodeType":"VariableDeclaration","scope":12405,"src":"9532:42:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":12400,"nodeType":"FunctionTypeName","parameterTypes":{"id":12398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12400,"src":"9541:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12396,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:14:17"},"returnParameterTypes":{"id":12399,"nodeType":"ParameterList","parameters":[],"src":"9569:0:17"},"src":"9532:42:17","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"9531:44:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":12417,"nodeType":"FunctionDefinition","src":"9648:133:17","nodes":[],"body":{"id":12416,"nodeType":"Block","src":"9709:72:17","nodes":[],"statements":[{"expression":{"arguments":[{"id":12413,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"9766:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":12411,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12433,"src":"9745:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":12410,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12405,"src":"9719:25:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":12412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9719:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9719:55:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12415,"nodeType":"ExpressionStatement","src":"9719:55:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"9657:15:17","parameters":{"id":12408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12407,"mutability":"mutable","name":"payload","nameLocation":"9686:7:17","nodeType":"VariableDeclaration","scope":12417,"src":"9673:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12406,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:22:17"},"returnParameters":{"id":12409,"nodeType":"ParameterList","parameters":[],"src":"9709:0:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":12433,"nodeType":"FunctionDefinition","src":"9787:381:17","nodes":[],"body":{"id":12432,"nodeType":"Block","src":"9851:317:17","nodes":[],"statements":[{"assignments":[12423],"declarations":[{"constant":false,"id":12423,"mutability":"mutable","name":"payloadLength","nameLocation":"9869:13:17","nodeType":"VariableDeclaration","scope":12432,"src":"9861:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12422,"name":"uint256","nodeType":"ElementaryTypeName","src":"9861:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12426,"initialValue":{"expression":{"id":12424,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12419,"src":"9885:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9885:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9861:38:17"},{"assignments":[12428],"declarations":[{"constant":false,"id":12428,"mutability":"mutable","name":"consoleAddress","nameLocation":"9917:14:17","nodeType":"VariableDeclaration","scope":12432,"src":"9909:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12427,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12430,"initialValue":{"id":12429,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11733,"src":"9934:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9909:41:17"},{"AST":{"nodeType":"YulBlock","src":"10012:150:17","statements":[{"nodeType":"YulVariableDeclaration","src":"10026:36:17","value":{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"10050:7:17"},{"kind":"number","nodeType":"YulLiteral","src":"10059:2:17","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10046:3:17"},"nodeType":"YulFunctionCall","src":"10046:16:17"},"variables":[{"name":"payloadStart","nodeType":"YulTypedName","src":"10030:12:17","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10075:77:17","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"10095:3:17"},"nodeType":"YulFunctionCall","src":"10095:5:17"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"10102:14:17"},{"name":"payloadStart","nodeType":"YulIdentifier","src":"10118:12:17"},{"name":"payloadLength","nodeType":"YulIdentifier","src":"10132:13:17"},{"kind":"number","nodeType":"YulLiteral","src":"10147:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10150:1:17","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"10084:10:17"},"nodeType":"YulFunctionCall","src":"10084:68:17"},"variables":[{"name":"r","nodeType":"YulTypedName","src":"10079:1:17","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":12428,"isOffset":false,"isSlot":false,"src":"10102:14:17","valueSize":1},{"declaration":12419,"isOffset":false,"isSlot":false,"src":"10050:7:17","valueSize":1},{"declaration":12423,"isOffset":false,"isSlot":false,"src":"10132:13:17","valueSize":1}],"id":12431,"nodeType":"InlineAssembly","src":"10003:159:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"9796:19:17","parameters":{"id":12420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12419,"mutability":"mutable","name":"payload","nameLocation":"9829:7:17","nodeType":"VariableDeclaration","scope":12433,"src":"9816:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12418,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:22:17"},"returnParameters":{"id":12421,"nodeType":"ParameterList","parameters":[],"src":"9851:0:17"},"scope":12482,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":12447,"nodeType":"FunctionDefinition","src":"10174:138:17","nodes":[],"body":{"id":12446,"nodeType":"Block","src":"10236:76:17","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":12441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10286:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":12442,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12435,"src":"10301:2:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12439,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10262:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10262:23:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10262:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12438,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12417,"src":"10246:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10246:59:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12445,"nodeType":"ExpressionStatement","src":"10246:59:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10183:21:17","parameters":{"id":12436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12435,"mutability":"mutable","name":"p0","nameLocation":"10219:2:17","nodeType":"VariableDeclaration","scope":12447,"src":"10205:16:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12434,"name":"string","nodeType":"ElementaryTypeName","src":"10205:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10204:18:17"},"returnParameters":{"id":12437,"nodeType":"ParameterList","parameters":[],"src":"10236:0:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":12464,"nodeType":"FunctionDefinition","src":"10318:162:17","nodes":[],"body":{"id":12463,"nodeType":"Block","src":"10392:88:17","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":12457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10442:21:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":12458,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"10465:2:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12459,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"10469:2:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10418:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10418:23:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10418:54:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12454,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12417,"src":"10402:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10402:71:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12462,"nodeType":"ExpressionStatement","src":"10402:71:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10327:21:17","parameters":{"id":12452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12449,"mutability":"mutable","name":"p0","nameLocation":"10363:2:17","nodeType":"VariableDeclaration","scope":12464,"src":"10349:16:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12448,"name":"string","nodeType":"ElementaryTypeName","src":"10349:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"p1","nameLocation":"10375:2:17","nodeType":"VariableDeclaration","scope":12464,"src":"10367:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12450,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10348:30:17"},"returnParameters":{"id":12453,"nodeType":"ParameterList","parameters":[],"src":"10392:0:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":12481,"nodeType":"FunctionDefinition","src":"10486:167:17","nodes":[],"body":{"id":12480,"nodeType":"Block","src":"10566:87:17","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":12474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10616:20:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":12475,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12466,"src":"10638:2:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12476,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12468,"src":"10642:2:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10592:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10592:23:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10592:53:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12471,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12417,"src":"10576:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10576:70:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12479,"nodeType":"ExpressionStatement","src":"10576:70:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10495:21:17","parameters":{"id":12469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12466,"mutability":"mutable","name":"p0","nameLocation":"10531:2:17","nodeType":"VariableDeclaration","scope":12481,"src":"10517:16:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12465,"name":"string","nodeType":"ElementaryTypeName","src":"10517:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12468,"mutability":"mutable","name":"p1","nameLocation":"10549:2:17","nodeType":"VariableDeclaration","scope":12481,"src":"10535:16:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12467,"name":"string","nodeType":"ElementaryTypeName","src":"10535:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10516:36:17"},"returnParameters":{"id":12470,"nodeType":"ParameterList","parameters":[],"src":"10566:0:17"},"scope":12482,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdUtils","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12482],"name":"StdUtils","nameLocation":"310:8:17","scope":12483,"usedErrors":[]}],"license":"MIT"},"id":17}