{
    "contractName": "SwappaRouterV1",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "input",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "output",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "inputAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "outputAmount",
                    "type": "uint256"
                }
            ],
            "name": "Swap",
            "type": "event"
        },
        {
            "stateMutability": "payable",
            "type": "receive"
        },
        {
            "inputs": [
                {
                    "internalType": "address[]",
                    "name": "path",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "pairs",
                    "type": "address[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "extras",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256",
                    "name": "inputAmount",
                    "type": "uint256"
                }
            ],
            "name": "getOutputAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "outputAmount",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address[]",
                    "name": "path",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "pairs",
                    "type": "address[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "extras",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256",
                    "name": "inputAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "minOutputAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "deadline",
                    "type": "uint256"
                }
            ],
            "name": "swapExactInputForOutput",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "outputAmount",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address[]",
                    "name": "path",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "pairs",
                    "type": "address[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "extras",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256",
                    "name": "inputAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "minOutputAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "deadline",
                    "type": "uint256"
                }
            ],
            "name": "swapExactInputForOutputWithPrecheck",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "outputAmount",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"input\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"output\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"pairs\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"extras\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"}],\"name\":\"getOutputAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"pairs\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"extras\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minOutputAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactInputForOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"pairs\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"extras\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minOutputAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactInputForOutputWithPrecheck\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/swappa/SwappaRouterV1.sol\":\"SwappaRouterV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x91e0bd6a6762d2a1700dab0849de8422611355100576c4beef1e80d82a4104a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73bbd77af0a8b07255d2ffa20728bcf13b116007c9ddac5d37046cfabb0e1e02\",\"dweb:/ipfs/QmRgZgWCWCSMTTaok6o4QvWA6MgB4goS8qpb3sN7bAvaZ9\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37\",\"dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA\"]},\"project:/contracts/swappa/ISwappaPairV1.sol\":{\"keccak256\":\"0x3ad68981bda91ed83c5e9ee8617f08bb5e208208477fb755cc77077f127010ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e4390b1bebc39f58bff34b9099a646ead67cef27b722ef61548487251cca719\",\"dweb:/ipfs/QmRWEuYyjHaS957VKWtTfDpzfqkXb2bvEsS33meAC76ZuU\"]},\"project:/contracts/swappa/ISwappaRouterV1.sol\":{\"keccak256\":\"0xf474ec7613e7b678e7546dec554ef5344685801175fb5944126b4a7573c9e5ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9edda99b3fb23f1a9e14cf45869db3c0ef057d33a4a49d46cde03e5882876d9\",\"dweb:/ipfs/QmPke9VWBqQ6mhF4dLiexrv8GUHqDsyoVDyDWNvQvpQA9m\"]},\"project:/contracts/swappa/SwappaRouterV1.sol\":{\"keccak256\":\"0xc874eb729001f76ae03e60546ae3ea945c07580dd2036767c07afe201d7ba020\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53d92d42b46a1c0971dda7bd3b5375428f9fbeacc5eafa41afe3784e1e22a328\",\"dweb:/ipfs/QmQFg6jBuMVMTsLEc3r5AQ5YMAMVz64n5GwCTfndbaueNG\"]}},\"version\":1}",
    "bytecode": "0x608060405234801561001057600080fd5b50611409806100206000396000f3fe6080604052600436106100385760003560e01c80630862d12f14610044578063adf6fa021461007a578063e2f46a001461009a5761003f565b3661003f57005b600080fd5b34801561005057600080fd5b5061006461005f366004610d93565b6100ba565b6040516100719190611365565b60405180910390f35b34801561008657600080fd5b50610064610095366004610d93565b610666565b3480156100a657600080fd5b506100646100b5366004610cf4565b610b2b565b600081428110156100e65760405162461bcd60e51b81526004016100dd90611217565b60405180910390fd5b600189018b146101085760405162461bcd60e51b81526004016100dd906112ab565b8887146101275760405162461bcd60e51b81526004016100dd9061124e565b886101445760405162461bcd60e51b81526004016100dd906110a3565b8b8b600081811061015157fe5b90506020020160208101906101669190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd338c8c600081811061018f57fe5b90506020020160208101906101a49190610cd2565b896040518463ffffffff1660e01b81526004016101c393929190610f18565b602060405180830381600087803b1580156101dd57600080fd5b505af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610e56565b6102315760405162461bcd60e51b81526004016100dd90611100565b60005b898110156103e6576000808e8e8481811061024b57fe5b90506020020160208101906102609190610cd2565b8f8f8560010181811061026f57fe5b90506020020160208101906102849190610cd2565b909250905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d0184106102ba57306102de565b8d8d856001018181106102c957fe5b90506020020160208101906102de9190610cd2565b905060608c8c868181106102ee57fe5b9050602002810190610300919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508e8e8681811061035157fe5b90506020020160208101906103669190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166332ef8314858585856040518563ffffffff1660e01b81526004016103a49493929190610f49565b600060405180830381600087803b1580156103be57600080fd5b505af11580156103d2573d6000803e3d6000fd5b505060019096019550610234945050505050565b5060008c8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061041757fe5b905060200201602081019061042c9190610cd2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906370a0823190610481903090600401610ef7565b60206040518083038186803b15801561049957600080fd5b505afa1580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190610e76565b9250858310156104f35760405162461bcd60e51b81526004016100dd90611308565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063a9059cbb90610547908890879060040161104f565b602060405180830381600087803b15801561056157600080fd5b505af1158015610575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105999190610e56565b6105b55760405162461bcd60e51b81526004016100dd906111ba565b8073ffffffffffffffffffffffffffffffffffffffff168d8d60008181106105d957fe5b90506020020160208101906105ee9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb75888b8860405161064e93929190611075565b60405180910390a450509a9950505050505050505050565b600081428110156106895760405162461bcd60e51b81526004016100dd90611217565b600189018b146106ab5760405162461bcd60e51b81526004016100dd906112ab565b8887146106ca5760405162461bcd60e51b81526004016100dd9061124e565b886106e75760405162461bcd60e51b81526004016100dd906110a3565b85915060005b89811015610868576000808e8e8481811061070457fe5b90506020020160208101906107199190610cd2565b8f8f8560010181811061072857fe5b905060200201602081019061073d9190610cd2565b9150915060608b8b8581811061074f57fe5b9050602002810190610761919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508d8d858181106107b257fe5b90506020020160208101906107c79190610cd2565b73ffffffffffffffffffffffffffffffffffffffff16637eace892848489856040518563ffffffff1660e01b81526004016108059493929190611010565b602060405180830381600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190610e76565b955050600190920191506106ed9050565b50848210156108895760405162461bcd60e51b81526004016100dd9061115d565b8b8b600081811061089657fe5b90506020020160208101906108ab9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd338c8c60008181106108d457fe5b90506020020160208101906108e99190610cd2565b896040518463ffffffff1660e01b815260040161090893929190610f18565b602060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190610e56565b6109765760405162461bcd60e51b81526004016100dd90611100565b60005b898110156103e6576000808e8e8481811061099057fe5b90506020020160208101906109a59190610cd2565b8f8f856001018181106109b457fe5b90506020020160208101906109c99190610cd2565b909250905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d0184106109ff5730610a23565b8d8d85600101818110610a0e57fe5b9050602002016020810190610a239190610cd2565b905060608c8c86818110610a3357fe5b9050602002810190610a45919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508e8e86818110610a9657fe5b9050602002016020810190610aab9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166332ef8314858585856040518563ffffffff1660e01b8152600401610ae99493929190610f49565b600060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b505060019096019550610979945050505050565b8060005b85811015610c5357868682818110610b4357fe5b9050602002016020810190610b589190610cd2565b73ffffffffffffffffffffffffffffffffffffffff16637eace8928a8a84818110610b7f57fe5b9050602002016020810190610b949190610cd2565b8b8b85600101818110610ba357fe5b9050602002016020810190610bb89190610cd2565b85898987818110610bc557fe5b9050602002810190610bd7919061136e565b6040518663ffffffff1660e01b8152600401610bf7959493929190610f94565b602060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c499190610e76565b9150600101610b2f565b50979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8357600080fd5b92915050565b60008083601f840112610c9a578182fd5b50813567ffffffffffffffff811115610cb1578182fd5b6020830191508360208083028501011115610ccb57600080fd5b9250929050565b600060208284031215610ce3578081fd5b610ced8383610c5f565b9392505050565b60008060008060008060006080888a031215610d0e578283fd5b873567ffffffffffffffff80821115610d25578485fd5b610d318b838c01610c89565b909950975060208a0135915080821115610d49578485fd5b610d558b838c01610c89565b909750955060408a0135915080821115610d6d578485fd5b50610d7a8a828b01610c89565b989b979a50959894979596606090950135949350505050565b60008060008060008060008060008060e08b8d031215610db1578283fd5b8a3567ffffffffffffffff80821115610dc8578485fd5b610dd48e838f01610c89565b909c509a5060208d0135915080821115610dec578485fd5b610df88e838f01610c89565b909a50985060408d0135915080821115610e10578485fd5b50610e1d8d828e01610c89565b90975095505060608b0135935060808b01359250610e3e8c60a08d01610c5f565b915060c08b013590509295989b9194979a5092959850565b600060208284031215610e67578081fd5b81518015158114610ced578182fd5b600060208284031215610e87578081fd5b5051919050565b60008151808452815b81811015610eb357602081850181015186830182015201610e97565b81811115610ec45782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015280851660408401525060806060830152610f8a6080830184610e8e565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a084013781830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152610f8a6080830184610e8e565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6020808252602a908201527f537761707061526f757465723a204d7573742068617665206174206c6561737460408201527f206f6e6520706169722100000000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f537761707061526f757465723a20496e697469616c207472616e73666572467260408201527f6f6d206661696c65642100000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f537761707061526f757465723a20496e73756666696369656e7420657870656360408201527f746564206f757470757420616d6f756e74210000000000000000000000000000606082015260800190565b60208082526024908201527f537761707061526f757465723a2046696e616c207472616e736665722066616960408201527f6c65642100000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526016908201527f537761707061526f757465723a20457870697265642100000000000000000000604082015260600190565b60208082526028908201527f537761707061526f757465723a20506169727320616e6420457874726173206d60408201527f69736d6174636821000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f537761707061526f757465723a205061746820616e64205061697273206d697360408201527f6d61746368210000000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f537761707061526f757465723a20496e73756666696369656e74206f7574707560408201527f7420616d6f756e74210000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126113a2578283fd5b8084018035925067ffffffffffffffff8311156113bd578384fd5b60200192505036819003821315610ccb57600080fdfea264697066735822122021708253f669860d51e7d8737f8edb914985197756f9de57503f907adce56b1164736f6c63430006080033",
    "deployedBytecode": "0x6080604052600436106100385760003560e01c80630862d12f14610044578063adf6fa021461007a578063e2f46a001461009a5761003f565b3661003f57005b600080fd5b34801561005057600080fd5b5061006461005f366004610d93565b6100ba565b6040516100719190611365565b60405180910390f35b34801561008657600080fd5b50610064610095366004610d93565b610666565b3480156100a657600080fd5b506100646100b5366004610cf4565b610b2b565b600081428110156100e65760405162461bcd60e51b81526004016100dd90611217565b60405180910390fd5b600189018b146101085760405162461bcd60e51b81526004016100dd906112ab565b8887146101275760405162461bcd60e51b81526004016100dd9061124e565b886101445760405162461bcd60e51b81526004016100dd906110a3565b8b8b600081811061015157fe5b90506020020160208101906101669190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd338c8c600081811061018f57fe5b90506020020160208101906101a49190610cd2565b896040518463ffffffff1660e01b81526004016101c393929190610f18565b602060405180830381600087803b1580156101dd57600080fd5b505af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610e56565b6102315760405162461bcd60e51b81526004016100dd90611100565b60005b898110156103e6576000808e8e8481811061024b57fe5b90506020020160208101906102609190610cd2565b8f8f8560010181811061026f57fe5b90506020020160208101906102849190610cd2565b909250905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d0184106102ba57306102de565b8d8d856001018181106102c957fe5b90506020020160208101906102de9190610cd2565b905060608c8c868181106102ee57fe5b9050602002810190610300919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508e8e8681811061035157fe5b90506020020160208101906103669190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166332ef8314858585856040518563ffffffff1660e01b81526004016103a49493929190610f49565b600060405180830381600087803b1580156103be57600080fd5b505af11580156103d2573d6000803e3d6000fd5b505060019096019550610234945050505050565b5060008c8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061041757fe5b905060200201602081019061042c9190610cd2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906370a0823190610481903090600401610ef7565b60206040518083038186803b15801561049957600080fd5b505afa1580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190610e76565b9250858310156104f35760405162461bcd60e51b81526004016100dd90611308565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063a9059cbb90610547908890879060040161104f565b602060405180830381600087803b15801561056157600080fd5b505af1158015610575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105999190610e56565b6105b55760405162461bcd60e51b81526004016100dd906111ba565b8073ffffffffffffffffffffffffffffffffffffffff168d8d60008181106105d957fe5b90506020020160208101906105ee9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb75888b8860405161064e93929190611075565b60405180910390a450509a9950505050505050505050565b600081428110156106895760405162461bcd60e51b81526004016100dd90611217565b600189018b146106ab5760405162461bcd60e51b81526004016100dd906112ab565b8887146106ca5760405162461bcd60e51b81526004016100dd9061124e565b886106e75760405162461bcd60e51b81526004016100dd906110a3565b85915060005b89811015610868576000808e8e8481811061070457fe5b90506020020160208101906107199190610cd2565b8f8f8560010181811061072857fe5b905060200201602081019061073d9190610cd2565b9150915060608b8b8581811061074f57fe5b9050602002810190610761919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508d8d858181106107b257fe5b90506020020160208101906107c79190610cd2565b73ffffffffffffffffffffffffffffffffffffffff16637eace892848489856040518563ffffffff1660e01b81526004016108059493929190611010565b602060405180830381600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190610e76565b955050600190920191506106ed9050565b50848210156108895760405162461bcd60e51b81526004016100dd9061115d565b8b8b600081811061089657fe5b90506020020160208101906108ab9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd338c8c60008181106108d457fe5b90506020020160208101906108e99190610cd2565b896040518463ffffffff1660e01b815260040161090893929190610f18565b602060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190610e56565b6109765760405162461bcd60e51b81526004016100dd90611100565b60005b898110156103e6576000808e8e8481811061099057fe5b90506020020160208101906109a59190610cd2565b8f8f856001018181106109b457fe5b90506020020160208101906109c99190610cd2565b909250905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d0184106109ff5730610a23565b8d8d85600101818110610a0e57fe5b9050602002016020810190610a239190610cd2565b905060608c8c86818110610a3357fe5b9050602002810190610a45919061136e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508e8e86818110610a9657fe5b9050602002016020810190610aab9190610cd2565b73ffffffffffffffffffffffffffffffffffffffff166332ef8314858585856040518563ffffffff1660e01b8152600401610ae99493929190610f49565b600060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b505060019096019550610979945050505050565b8060005b85811015610c5357868682818110610b4357fe5b9050602002016020810190610b589190610cd2565b73ffffffffffffffffffffffffffffffffffffffff16637eace8928a8a84818110610b7f57fe5b9050602002016020810190610b949190610cd2565b8b8b85600101818110610ba357fe5b9050602002016020810190610bb89190610cd2565b85898987818110610bc557fe5b9050602002810190610bd7919061136e565b6040518663ffffffff1660e01b8152600401610bf7959493929190610f94565b602060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c499190610e76565b9150600101610b2f565b50979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8357600080fd5b92915050565b60008083601f840112610c9a578182fd5b50813567ffffffffffffffff811115610cb1578182fd5b6020830191508360208083028501011115610ccb57600080fd5b9250929050565b600060208284031215610ce3578081fd5b610ced8383610c5f565b9392505050565b60008060008060008060006080888a031215610d0e578283fd5b873567ffffffffffffffff80821115610d25578485fd5b610d318b838c01610c89565b909950975060208a0135915080821115610d49578485fd5b610d558b838c01610c89565b909750955060408a0135915080821115610d6d578485fd5b50610d7a8a828b01610c89565b989b979a50959894979596606090950135949350505050565b60008060008060008060008060008060e08b8d031215610db1578283fd5b8a3567ffffffffffffffff80821115610dc8578485fd5b610dd48e838f01610c89565b909c509a5060208d0135915080821115610dec578485fd5b610df88e838f01610c89565b909a50985060408d0135915080821115610e10578485fd5b50610e1d8d828e01610c89565b90975095505060608b0135935060808b01359250610e3e8c60a08d01610c5f565b915060c08b013590509295989b9194979a5092959850565b600060208284031215610e67578081fd5b81518015158114610ced578182fd5b600060208284031215610e87578081fd5b5051919050565b60008151808452815b81811015610eb357602081850181015186830182015201610e97565b81811115610ec45782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015280851660408401525060806060830152610f8a6080830184610e8e565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a084013781830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152610f8a6080830184610e8e565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b6020808252602a908201527f537761707061526f757465723a204d7573742068617665206174206c6561737460408201527f206f6e6520706169722100000000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f537761707061526f757465723a20496e697469616c207472616e73666572467260408201527f6f6d206661696c65642100000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f537761707061526f757465723a20496e73756666696369656e7420657870656360408201527f746564206f757470757420616d6f756e74210000000000000000000000000000606082015260800190565b60208082526024908201527f537761707061526f757465723a2046696e616c207472616e736665722066616960408201527f6c65642100000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526016908201527f537761707061526f757465723a20457870697265642100000000000000000000604082015260600190565b60208082526028908201527f537761707061526f757465723a20506169727320616e6420457874726173206d60408201527f69736d6174636821000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f537761707061526f757465723a205061746820616e64205061697273206d697360408201527f6d61746368210000000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f537761707061526f757465723a20496e73756666696369656e74206f7574707560408201527f7420616d6f756e74210000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126113a2578283fd5b8084018035925067ffffffffffffffff8311156113bd578384fd5b60200192505036819003821315610ccb57600080fdfea264697066735822122021708253f669860d51e7d8737f8edb914985197756f9de57503f907adce56b1164736f6c63430006080033",
    "immutableReferences": {},
    "sourceMap": "209:5381:61:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;209:5381:61;;;;;;;",
    "deployedSourceMap": "209:5381:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1089:1750:61;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;1089:1750:61;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2845:2708;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;2845:2708:61;;;;;;;;:::i;582:501::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;582:501:61;;;;;;;;:::i;1089:1750::-;1377:20;1358:8;516:15;504:8;:27;;496:62;;;;-1:-1:-1;;;496:62:61;;;;;;;;;;;;;;;;;1460:1:::1;1445:16:::0;::::1;1430:31:::0;::::1;1409:116;;;;-1:-1:-1::0;;;1409:116:61::1;;;;;;;;;1556:29:::0;;::::1;1535:116;;;;-1:-1:-1::0;;;1535:116:61::1;;;;;;;;;1669:16:::0;1661:71:::1;;;;-1:-1:-1::0;;;1661:71:61::1;;;;;;;;;1770:4;;1775:1;1770:7;;;;;;;;;;;;;;;;;;;;;;1764:27;;;1792:10;1804:5;;1810:1;1804:8;;;;;;;;;;;;;;;;;;;;;;1814:11;1764:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;1764:62:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;1764:62:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1764:62:61;;;;;;;;;1743:151;;;;-1:-1:-1::0;;;1743:151:61::1;;;;;;;;;1909:6;1904:325;1917:16:::0;;::::1;1904:325;;;1955:17;1974:18:::0;1997:4:::1;;2002:1;1997:7;;;;;;;;;;;;;;;;;;;;;;2006:4;;2011:1;2015;2011:5;2006:11;;;;;;;;;;;;;;;;;;;;;;1954:64:::0;;-1:-1:-1;1954:64:61;-1:-1:-1;2032:12:61::1;2051:16:::0;;;2047:20;::::1;:51;;2093:4;2047:51;;;2070:5;;2076:1;2080;2076:5;2070:12;;;;;;;;;;;;;;;;;;;;;;2032:66;;2112:17;2132:6;;2139:1;2132:9;;;;;;;;;;;;;;;;;;;;2112:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2112:29:61;;;;;;;;2169:5;;2175:1;2169:8;;;;;;;;;;;;;;;;;;;;;;2155:28;;;2184:9;2195:10;2207:4;2213;2155:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2155:63:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;1935:3:61::1;::::0;;::::1;::::0;-1:-1:-1;1904:325:61::1;::::0;-1:-1:-1;;;;;1904:325:61::1;;-1:-1:-1::0;2390:14:61::1;2407:4:::0;;2412:15;;;2407:21;;::::1;;;;;;;;;;;;;;;;;;;;2453:38;::::0;;;;2390;;-1:-1:-1;2453:23:61::1;::::0;::::1;::::0;::::1;::::0;:38:::1;::::0;2485:4:::1;::::0;2453:38:::1;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2453:38:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2453:38:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2453:38:61;;;;;;;;;2438:53;;2538:15;2522:12;:31;;2501:119;;;;-1:-1:-1::0;;;2501:119:61::1;;;;;;;;;2651:40;::::0;;;;:22:::1;::::0;::::1;::::0;::::1;::::0;:40:::1;::::0;2674:2;;2678:12;;2651:40:::1;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;2651:40:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2651:40:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2651:40:61;;;;;;;;;2630:123;;;;-1:-1:-1::0;;;2630:123:61::1;;;;;;;;;2798:6;2768:64;;2789:4;;2794:1;2789:7;;;;;;;;;;;;;;;;;;;;;;2768:64;;2773:10;2768:64;;;2785:2;2806:11;2819:12;2768:64;;;;;;;;;;;;;;;;;568:1;1089:1750:::0;;;;;;;;;;;;;:::o;2845:2708::-;3145:20;3126:8;516:15;504:8;:27;;496:62;;;;-1:-1:-1;;;496:62:61;;;;;;;;;3228:1:::1;3213:16:::0;::::1;3198:31:::0;::::1;3177:116;;;;-1:-1:-1::0;;;3177:116:61::1;;;;;;;;;3324:29:::0;;::::1;3303:116;;;;-1:-1:-1::0;;;3303:116:61::1;;;;;;;;;3437:16:::0;3429:71:::1;;;;-1:-1:-1::0;;;3429:71:61::1;;;;;;;;;3816:11;3801:26;;3911:6;3906:377;3919:16:::0;;::::1;3906:377;;;3961:13;3976:14:::0;3995:4:::1;;4000:1;3995:7;;;;;;;;;;;;;;;;;;;;;;4004:4;;4009:1;4013;4009:5;4004:11;;;;;;;;;;;;;;;;;;;;;;3960:56;;;;4034:17;4054:6;;4061:1;4054:9;;;;;;;;;;;;;;;;;;;;4034:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4034:29:61;;;;;;;;4110:5;;4116:1;4110:8;;;;;;;;;;;;;;;;;;;;;;4096:39;;;4157:5;4184:6;4212:12;4246:4;4096:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;4096:172:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4096:172:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4096:172:61;;;;;;;;;4081:187:::0;-1:-1:-1;;3937:3:61::1;::::0;;::::1;::::0;-1:-1:-1;3906:377:61::1;::::0;-1:-1:-1;3906:377:61::1;;;4337:15;4321:12;:31;;4296:140;;;;-1:-1:-1::0;;;4296:140:61::1;;;;;;;;;4484:4;;4489:1;4484:7;;;;;;;;;;;;;;;;;;;;;;4478:27;;;4506:10;4518:5;;4524:1;4518:8;;;;;;;;;;;;;;;;;;;;;;4528:11;4478:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;4478:62:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;4478:62:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4478:62:61;;;;;;;;;4457:151;;;;-1:-1:-1::0;;;4457:151:61::1;;;;;;;;;4623:6;4618:325;4631:16:::0;;::::1;4618:325;;;4669:17;4688:18:::0;4711:4:::1;;4716:1;4711:7;;;;;;;;;;;;;;;;;;;;;;4720:4;;4725:1;4729;4725:5;4720:11;;;;;;;;;;;;;;;;;;;;;;4668:64:::0;;-1:-1:-1;4668:64:61;-1:-1:-1;4746:12:61::1;4765:16:::0;;;4761:20;::::1;:51;;4807:4;4761:51;;;4784:5;;4790:1;4794;4790:5;4784:12;;;;;;;;;;;;;;;;;;;;;;4746:66;;4826:17;4846:6;;4853:1;4846:9;;;;;;;;;;;;;;;;;;;;4826:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4826:29:61;;;;;;;;4883:5;;4889:1;4883:8;;;;;;;;;;;;;;;;;;;;;;4869:28;;;4898:9;4909:10;4921:4;4927;4869:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;4869:63:61;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;4649:3:61::1;::::0;;::::1;::::0;-1:-1:-1;4618:325:61::1;::::0;-1:-1:-1;;;;;4618:325:61::1;582:501:::0;816:11;769:20;837:240;850:16;;;837:240;;;916:5;;922:1;916:8;;;;;;;;;;;;;;;;;;;;;;902:39;;;959:4;;964:1;959:7;;;;;;;;;;;;;;;;;;;;;;984:4;;989:1;993;989:5;984:11;;;;;;;;;;;;;;;;;;;;;;1013:12;1043:6;;1050:1;1043:9;;;;;;;;;;;;;;;;;;;;902:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;902:164:61;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;902:164:61;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;902:164:61;;;;;;;;;887:179;-1:-1:-1;868:3:61;;837:240;;;;582:501;;;;;;;;;:::o;5:130:-1:-;72:20;;17141:42;17130:54;;18249:35;;18239:2;;18298:1;;18288:12;18239:2;57:78;;;;;160:352;;;290:3;283:4;275:6;271:17;267:27;257:2;;-1:-1;;298:12;257:2;-1:-1;328:20;;368:18;357:30;;354:2;;;-1:-1;;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;434:4;;469:6;465:17;426:6;451:32;;448:41;445:2;;;502:1;;492:12;445:2;250:262;;;;;;1320:241;;1424:2;1412:9;1403:7;1399:23;1395:32;1392:2;;;-1:-1;;1430:12;1392:2;1492:53;1537:7;1513:22;1492:53;;;1482:63;1386:175;-1:-1;;;1386:175;1568:1107;;;;;;;;1839:3;1827:9;1818:7;1814:23;1810:33;1807:2;;;-1:-1;;1846:12;1807:2;1904:17;1891:31;1942:18;;1934:6;1931:30;1928:2;;;-1:-1;;1964:12;1928:2;2002:80;2074:7;2065:6;2054:9;2050:22;2002:80;;;1992:90;;-1:-1;1992:90;-1:-1;2147:2;2132:18;;2119:32;;-1:-1;2160:30;;;2157:2;;;-1:-1;;2193:12;2157:2;2231:80;2303:7;2294:6;2283:9;2279:22;2231:80;;;2221:90;;-1:-1;2221:90;-1:-1;2376:2;2361:18;;2348:32;;-1:-1;2389:30;;;2386:2;;;-1:-1;;2422:12;2386:2;;2460:91;2543:7;2534:6;2523:9;2519:22;2460:91;;;1801:874;;;;-1:-1;1801:874;;;;;;2588:2;2627:22;;;1109:20;;1801:874;-1:-1;;;;1801:874;2682:1485;;;;;;;;;;;3004:3;2992:9;2983:7;2979:23;2975:33;2972:2;;;-1:-1;;3011:12;2972:2;3069:17;3056:31;3107:18;;3099:6;3096:30;3093:2;;;-1:-1;;3129:12;3093:2;3167:80;3239:7;3230:6;3219:9;3215:22;3167:80;;;3157:90;;-1:-1;3157:90;-1:-1;3312:2;3297:18;;3284:32;;-1:-1;3325:30;;;3322:2;;;-1:-1;;3358:12;3322:2;3396:80;3468:7;3459:6;3448:9;3444:22;3396:80;;;3386:90;;-1:-1;3386:90;-1:-1;3541:2;3526:18;;3513:32;;-1:-1;3554:30;;;3551:2;;;-1:-1;;3587:12;3551:2;;3625:91;3708:7;3699:6;3688:9;3684:22;3625:91;;;3615:101;;-1:-1;3615:101;-1:-1;;3753:2;3792:22;;1109:20;;-1:-1;3861:3;3901:22;;1109:20;;-1:-1;3989:53;4034:7;3970:3;4010:22;;3989:53;;;3979:63;;4079:3;4123:9;4119:22;1109:20;4088:63;;2966:1201;;;;;;;;;;;;;;4174:257;;4286:2;4274:9;4265:7;4261:23;4257:32;4254:2;;;-1:-1;;4292:12;4254:2;988:6;982:13;18395:5;17042:13;17035:21;18373:5;18370:32;18360:2;;-1:-1;;18406:12;4438:263;;4553:2;4541:9;4532:7;4528:23;4524:32;4521:2;;;-1:-1;;4559:12;4521:2;-1:-1;1257:13;;4515:186;-1:-1;4515:186;5305:343;;5447:5;16494:12;16650:6;16645:3;16638:19;-1:-1;17881:101;17895:6;17892:1;17889:13;17881:101;;;16687:4;17962:11;;;;;17956:18;17943:11;;;;;17936:39;17910:10;17881:101;;;17997:6;17994:1;17991:13;17988:2;;;-1:-1;16687:4;18053:6;16682:3;18044:16;;18037:27;17988:2;-1:-1;18173:2;18153:14;18169:7;18149:28;5604:39;;;;16687:4;5604:39;;5395:253;-1:-1;;5395:253;8817:238;17141:42;17130:54;;;;4787:58;;8952:2;8937:18;;8923:132;9062:460;17141:42;17130:54;;;4787:58;;17130:54;;;;9425:2;9410:18;;4928:37;9508:2;9493:18;;8768:37;;;;9253:2;9238:18;;9224:298;9529:640;;17141:42;;4958:5;17130:54;4935:3;4928:37;17141:42;4958:5;17130:54;9923:2;9912:9;9908:18;4928:37;17141:42;4958:5;17130:54;10006:2;9995:9;9991:18;4928:37;;9758:3;10043:2;10032:9;10028:18;10021:48;10083:76;9758:3;9747:9;9743:19;10145:6;10083:76;;;10075:84;9729:440;-1:-1;;;;;;9729:440;10176:660;;17141:42;;17134:5;17130:54;4935:3;4928:37;17141:42;17134:5;17130:54;10580:2;10569:9;10565:18;4928:37;;8798:5;10663:2;10652:9;10648:18;8768:37;10415:3;10700:2;10689:9;10685:18;10678:48;16650:6;10415:3;10404:9;10400:19;16638;17736:6;17731:3;16678:14;10404:9;16678:14;17713:30;17774:16;;;16678:14;17774:16;;;17767:27;;;;18173:2;18153:14;;;18169:7;18149:28;5252:39;;;10386:450;-1:-1;;;;10386:450;10843:640;;17141:42;;17134:5;17130:54;4935:3;4928:37;17141:42;17134:5;17130:54;11237:2;11226:9;11222:18;4928:37;;8798:5;11320:2;11309:9;11305:18;8768:37;11072:3;11357:2;11346:9;11342:18;11335:48;11397:76;11072:3;11061:9;11057:19;11459:6;11397:76;;11490:333;17141:42;17130:54;;;;4928:37;;11809:2;11794:18;;8768:37;11645:2;11630:18;;11616:207;11830:444;17141:42;17130:54;;;;4928:37;;12177:2;12162:18;;8768:37;;;;12260:2;12245:18;;8768:37;12013:2;11998:18;;11984:290;12281:416;12481:2;12495:47;;;5880:2;12466:18;;;16638:19;5916:34;16678:14;;;5896:55;5985:12;5971;;;5964:34;6017:12;;;12452:245;12704:416;12904:2;12918:47;;;6268:2;12889:18;;;16638:19;6304:34;16678:14;;;6284:55;6373:12;6359;;;6352:34;6405:12;;;12875:245;13127:416;13327:2;13341:47;;;6656:2;13312:18;;;16638:19;6692:34;16678:14;;;6672:55;6761:20;6747:12;;;6740:42;6801:12;;;13298:245;13550:416;13750:2;13764:47;;;7052:2;13735:18;;;16638:19;7088:34;16678:14;;;7068:55;7157:6;7143:12;;;7136:28;7183:12;;;13721:245;13973:416;14173:2;14187:47;;;7434:2;14158:18;;;16638:19;7470:24;16678:14;;;7450:45;7514:12;;;14144:245;14396:416;14596:2;14610:47;;;7765:2;14581:18;;;16638:19;7801:34;16678:14;;;7781:55;7870:10;7856:12;;;7849:32;7900:12;;;14567:245;14819:416;15019:2;15033:47;;;8151:2;15004:18;;;16638:19;8187:34;16678:14;;;8167:55;8256:8;8242:12;;;8235:30;8284:12;;;14990:245;15242:416;15442:2;15456:47;;;8535:2;15427:18;;;16638:19;8571:34;16678:14;;;8551:55;8640:11;8626:12;;;8619:33;8671:12;;;15413:245;15665:222;8768:37;;;15792:2;15777:18;;15763:124;15894:506;;;16029:11;16016:25;16080:48;16104:8;16088:14;16084:29;16080:48;16060:18;16056:73;16046:2;;-1:-1;;16133:12;16046:2;16174:18;16164:8;16160:33;16227:4;16214:18;16204:28;;16252:18;16244:6;16241:30;16238:2;;;-1:-1;;16274:12;16238:2;16119:4;16302:13;;-1:-1;;16088:14;16334:38;;;16324:49;;16321:2;;;16386:1;;16376:12",
    "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"./ISwappaPairV1.sol\";\nimport \"./ISwappaRouterV1.sol\";\n\ncontract SwappaRouterV1 is ISwappaRouterV1 {\n    event Swap(\n        address indexed sender,\n        address to,\n        address indexed input,\n        address indexed output,\n        uint256 inputAmount,\n        uint256 outputAmount\n    );\n\n    modifier ensure(uint deadline) {\n        require(deadline >= block.timestamp, \"SwappaRouter: Expired!\");\n        _;\n    }\n\n    function getOutputAmount(\n        address[] calldata path,\n        address[] calldata pairs,\n        bytes[] calldata extras,\n        uint256 inputAmount\n    ) external override returns (uint256 outputAmount) {\n        outputAmount = inputAmount;\n        for (uint i; i < pairs.length; i++) {\n            outputAmount = ISwappaPairV1(pairs[i]).getOutputAmount(\n                path[i],\n                path[i + 1],\n                outputAmount,\n                extras[i]\n            );\n        }\n    }\n\n    function swapExactInputForOutput(\n        address[] calldata path,\n        address[] calldata pairs,\n        bytes[] calldata extras,\n        uint256 inputAmount,\n        uint256 minOutputAmount,\n        address to,\n        uint deadline\n    ) external override ensure(deadline) returns (uint256 outputAmount) {\n        require(\n            path.length == pairs.length + 1,\n            \"SwappaRouter: Path and Pairs mismatch!\"\n        );\n        require(\n            pairs.length == extras.length,\n            \"SwappaRouter: Pairs and Extras mismatch!\"\n        );\n        require(pairs.length > 0, \"SwappaRouter: Must have at least one pair!\");\n\n        require(\n            ERC20(path[0]).transferFrom(msg.sender, pairs[0], inputAmount),\n            \"SwappaRouter: Initial transferFrom failed!\"\n        );\n        for (uint i; i < pairs.length; i++) {\n            (address pairInput, address pairOutput) = (path[i], path[i + 1]);\n            address next = i < pairs.length - 1 ? pairs[i + 1] : address(this);\n            bytes memory data = extras[i];\n            ISwappaPairV1(pairs[i]).swap(pairInput, pairOutput, next, data);\n        }\n        // Perform final output check in the router as a final safeguard to make sure\n        // minOutputAmount restriction is honored no matter what.\n        address output = path[path.length - 1];\n        outputAmount = ERC20(output).balanceOf(address(this));\n        require(\n            outputAmount >= minOutputAmount,\n            \"SwappaRouter: Insufficient output amount!\"\n        );\n        require(\n            ERC20(output).transfer(to, outputAmount),\n            \"SwappaRouter: Final transfer failed!\"\n        );\n        emit Swap(msg.sender, to, path[0], output, inputAmount, outputAmount);\n    }\n\n    function swapExactInputForOutputWithPrecheck(\n        address[] calldata path,\n        address[] calldata pairs,\n        bytes[] calldata extras,\n        uint256 inputAmount,\n        uint256 minOutputAmount,\n        address to,\n        uint deadline\n    ) external override ensure(deadline) returns (uint256 outputAmount) {\n        require(\n            path.length == pairs.length + 1,\n            \"SwappaRouter: Path and Pairs mismatch!\"\n        );\n        require(\n            pairs.length == extras.length,\n            \"SwappaRouter: Pairs and Extras mismatch!\"\n        );\n        require(pairs.length > 0, \"SwappaRouter: Must have at least one pair!\");\n\n        // Note(zviadm): Full code copying is necessary because `bytes[]` arrays can not easily be\n        // passed around between `calldata` and `memory` locations. Manual copying would be necessary\n        // with quite a bit of annoying code to work around stack issues.\n\n        {\n            outputAmount = inputAmount; // reuse outputAmount variable to avoid \"stack too deep\" errors.\n            for (uint i; i < pairs.length; i++) {\n                (address input, address output) = (path[i], path[i + 1]);\n                bytes memory data = extras[i];\n                outputAmount = ISwappaPairV1(pairs[i]).getOutputAmount(\n                    input,\n                    output,\n                    outputAmount,\n                    data\n                );\n            }\n            require(\n                outputAmount >= minOutputAmount,\n                \"SwappaRouter: Insufficient expected output amount!\"\n            );\n        }\n\n        require(\n            ERC20(path[0]).transferFrom(msg.sender, pairs[0], inputAmount),\n            \"SwappaRouter: Initial transferFrom failed!\"\n        );\n        for (uint i; i < pairs.length; i++) {\n            (address pairInput, address pairOutput) = (path[i], path[i + 1]);\n            address next = i < pairs.length - 1 ? pairs[i + 1] : address(this);\n            bytes memory data = extras[i];\n            ISwappaPairV1(pairs[i]).swap(pairInput, pairOutput, next, data);\n        }\n        // Perform final output check in the router as a final safeguard to make sure\n        // minOutputAmount restriction is honored no matter what.\n        address output = path[path.length - 1];\n        outputAmount = ERC20(output).balanceOf(address(this));\n        require(\n            outputAmount >= minOutputAmount,\n            \"SwappaRouter: Insufficient output amount!\"\n        );\n        require(\n            ERC20(output).transfer(to, outputAmount),\n            \"SwappaRouter: Final transfer failed!\"\n        );\n        emit Swap(msg.sender, to, path[0], output, inputAmount, outputAmount);\n    }\n\n    receive() external payable {}\n}\n",
    "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/swappa/SwappaRouterV1.sol",
    "ast": {
        "absolutePath": "project:/contracts/swappa/SwappaRouterV1.sol",
        "exportedSymbols": {
            "SwappaRouterV1": [
                8571
            ]
        },
        "id": 8572,
        "license": "MIT",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 8046,
                "literals": [
                    "solidity",
                    "0.6",
                    ".8"
                ],
                "nodeType": "PragmaDirective",
                "src": "32:22:61"
            },
            {
                "id": 8047,
                "literals": [
                    "experimental",
                    "ABIEncoderV2"
                ],
                "nodeType": "PragmaDirective",
                "src": "55:33:61"
            },
            {
                "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "id": 8048,
                "nodeType": "ImportDirective",
                "scope": 8572,
                "sourceUnit": 726,
                "src": "90:55:61",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                "file": "./ISwappaPairV1.sol",
                "id": 8049,
                "nodeType": "ImportDirective",
                "scope": 8572,
                "sourceUnit": 5326,
                "src": "146:29:61",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/swappa/ISwappaRouterV1.sol",
                "file": "./ISwappaRouterV1.sol",
                "id": 8050,
                "nodeType": "ImportDirective",
                "scope": 8572,
                "sourceUnit": 5390,
                "src": "176:31:61",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 8051,
                            "name": "ISwappaRouterV1",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 5389,
                            "src": "236:15:61",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ISwappaRouterV1_$5389",
                                "typeString": "contract ISwappaRouterV1"
                            }
                        },
                        "id": 8052,
                        "nodeType": "InheritanceSpecifier",
                        "src": "236:15:61"
                    }
                ],
                "contractDependencies": [
                    5389
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 8571,
                "linearizedBaseContracts": [
                    8571,
                    5389
                ],
                "name": "SwappaRouterV1",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "anonymous": false,
                        "documentation": null,
                        "id": 8066,
                        "name": "Swap",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 8065,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8054,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "278:22:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8053,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "278:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8056,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "to",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "310:10:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8055,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "310:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8058,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "input",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "330:21:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8057,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "330:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8060,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "output",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "361:22:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8059,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "361:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8062,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "inputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "393:19:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8061,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "393:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8064,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "outputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8066,
                                    "src": "422:20:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8063,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "422:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "268:180:61"
                        },
                        "src": "258:191:61"
                    },
                    {
                        "body": {
                            "id": 8079,
                            "nodeType": "Block",
                            "src": "486:90:61",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8074,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8071,
                                                    "name": "deadline",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8068,
                                                    "src": "504:8:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8072,
                                                        "name": "block",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -4,
                                                        "src": "516:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_block",
                                                            "typeString": "block"
                                                        }
                                                    },
                                                    "id": 8073,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "timestamp",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "516:15:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "504:27:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a204578706972656421",
                                                "id": 8075,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "533:24:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9ed8592ea2f5619ebcb3e301962e66ed8fe7649ccf8e6d5cbf672aa0763f3846",
                                                    "typeString": "literal_string \"SwappaRouter: Expired!\""
                                                },
                                                "value": "SwappaRouter: Expired!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9ed8592ea2f5619ebcb3e301962e66ed8fe7649ccf8e6d5cbf672aa0763f3846",
                                                    "typeString": "literal_string \"SwappaRouter: Expired!\""
                                                }
                                            ],
                                            "id": 8070,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "496:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8076,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "496:62:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8077,
                                    "nodeType": "ExpressionStatement",
                                    "src": "496:62:61"
                                },
                                {
                                    "id": 8078,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "568:1:61"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 8080,
                        "name": "ensure",
                        "nodeType": "ModifierDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 8069,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8068,
                                    "mutability": "mutable",
                                    "name": "deadline",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8080,
                                    "src": "471:13:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8067,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "471:4:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "470:15:61"
                        },
                        "src": "455:121:61",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "baseFunctions": [
                            5344
                        ],
                        "body": {
                            "id": 8135,
                            "nodeType": "Block",
                            "src": "791:292:61",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 8099,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 8097,
                                            "name": "outputAmount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8095,
                                            "src": "801:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "id": 8098,
                                            "name": "inputAmount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8091,
                                            "src": "816:11:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "801:26:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8100,
                                    "nodeType": "ExpressionStatement",
                                    "src": "801:26:61"
                                },
                                {
                                    "body": {
                                        "id": 8133,
                                        "nodeType": "Block",
                                        "src": "873:204:61",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8131,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "argumentTypes": null,
                                                        "id": 8111,
                                                        "name": "outputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8095,
                                                        "src": "887:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8118,
                                                                    "name": "path",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8083,
                                                                    "src": "959:4:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8120,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8119,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8102,
                                                                    "src": "964:1:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "959:7:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8121,
                                                                    "name": "path",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8083,
                                                                    "src": "984:4:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8125,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 8124,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8122,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8102,
                                                                        "src": "989:1:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "+",
                                                                    "rightExpression": {
                                                                        "argumentTypes": null,
                                                                        "hexValue": "31",
                                                                        "id": 8123,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "number",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "993:1:61",
                                                                        "subdenomination": null,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_rational_1_by_1",
                                                                            "typeString": "int_const 1"
                                                                        },
                                                                        "value": "1"
                                                                    },
                                                                    "src": "989:5:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "984:11:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 8126,
                                                                "name": "outputAmount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8095,
                                                                "src": "1013:12:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8127,
                                                                    "name": "extras",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8089,
                                                                    "src": "1043:6:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                                        "typeString": "bytes calldata[] calldata"
                                                                    }
                                                                },
                                                                "id": 8129,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8128,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8102,
                                                                    "src": "1050:1:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "1043:9:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "baseExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 8113,
                                                                            "name": "pairs",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8086,
                                                                            "src": "916:5:61",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                                "typeString": "address[] calldata"
                                                                            }
                                                                        },
                                                                        "id": 8115,
                                                                        "indexExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 8114,
                                                                            "name": "i",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8102,
                                                                            "src": "922:1:61",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "916:8:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 8112,
                                                                    "name": "ISwappaPairV1",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 5325,
                                                                    "src": "902:13:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_ISwappaPairV1_$5325_$",
                                                                        "typeString": "type(contract ISwappaPairV1)"
                                                                    }
                                                                },
                                                                "id": 8116,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "902:23:61",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                                                    "typeString": "contract ISwappaPairV1"
                                                                }
                                                            },
                                                            "id": 8117,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getOutputAmount",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 5324,
                                                            "src": "902:39:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                                                                "typeString": "function (address,address,uint256,bytes memory) external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 8130,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "902:164:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "887:179:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 8132,
                                                "nodeType": "ExpressionStatement",
                                                "src": "887:179:61"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 8107,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 8104,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8102,
                                            "src": "850:1:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 8105,
                                                "name": "pairs",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8086,
                                                "src": "854:5:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                    "typeString": "address[] calldata"
                                                }
                                            },
                                            "id": 8106,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "854:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "850:16:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8134,
                                    "initializationExpression": {
                                        "assignments": [
                                            8102
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 8102,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "overrides": null,
                                                "scope": 8134,
                                                "src": "842:6:61",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 8101,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "842:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 8103,
                                        "initialValue": null,
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "842:6:61"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 8109,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "868:3:61",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 8108,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8102,
                                                "src": "868:1:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8110,
                                        "nodeType": "ExpressionStatement",
                                        "src": "868:3:61"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "837:240:61"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "e2f46a00",
                        "id": 8136,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getOutputAmount",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8093,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "751:8:61"
                        },
                        "parameters": {
                            "id": 8092,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8083,
                                    "mutability": "mutable",
                                    "name": "path",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8136,
                                    "src": "616:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8081,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "616:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8082,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "616:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8086,
                                    "mutability": "mutable",
                                    "name": "pairs",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8136,
                                    "src": "649:24:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8084,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "649:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8085,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "649:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8089,
                                    "mutability": "mutable",
                                    "name": "extras",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8136,
                                    "src": "683:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "bytes[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8087,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "683:5:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                            }
                                        },
                                        "id": 8088,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "683:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                                            "typeString": "bytes[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8091,
                                    "mutability": "mutable",
                                    "name": "inputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8136,
                                    "src": "716:19:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8090,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "716:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "606:135:61"
                        },
                        "returnParameters": {
                            "id": 8096,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8095,
                                    "mutability": "mutable",
                                    "name": "outputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8136,
                                    "src": "769:20:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8094,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "769:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "768:22:61"
                        },
                        "scope": 8571,
                        "src": "582:501:61",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            5366
                        ],
                        "body": {
                            "id": 8321,
                            "nodeType": "Block",
                            "src": "1399:1440:61",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8169,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8163,
                                                        "name": "path",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8139,
                                                        "src": "1430:4:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8164,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "1430:11:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 8168,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 8165,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8142,
                                                            "src": "1445:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8166,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "1445:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "+",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "31",
                                                        "id": 8167,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1460:1:61",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_1_by_1",
                                                            "typeString": "int_const 1"
                                                        },
                                                        "value": "1"
                                                    },
                                                    "src": "1445:16:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "1430:31:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a205061746820616e64205061697273206d69736d6174636821",
                                                "id": 8170,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1475:40:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                },
                                                "value": "SwappaRouter: Path and Pairs mismatch!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                }
                                            ],
                                            "id": 8162,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1409:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8171,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1409:116:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8172,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1409:116:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8178,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8174,
                                                        "name": "pairs",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8142,
                                                        "src": "1556:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8175,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "1556:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8176,
                                                        "name": "extras",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8145,
                                                        "src": "1572:6:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                            "typeString": "bytes calldata[] calldata"
                                                        }
                                                    },
                                                    "id": 8177,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "1572:13:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "1556:29:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20506169727320616e6420457874726173206d69736d6174636821",
                                                "id": 8179,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1599:42:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                },
                                                "value": "SwappaRouter: Pairs and Extras mismatch!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                }
                                            ],
                                            "id": 8173,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1535:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8180,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1535:116:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8181,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1535:116:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8186,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8183,
                                                        "name": "pairs",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8142,
                                                        "src": "1669:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8184,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "1669:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 8185,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "1684:1:61",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "1669:16:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a204d7573742068617665206174206c65617374206f6e65207061697221",
                                                "id": 8187,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1687:44:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                },
                                                "value": "SwappaRouter: Must have at least one pair!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                }
                                            ],
                                            "id": 8182,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1661:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8188,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1661:71:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8189,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1661:71:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 8197,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": -15,
                                                            "src": "1792:3:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 8198,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "1792:10:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8199,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8142,
                                                            "src": "1804:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8201,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 8200,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "1810:1:61",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "1804:8:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8202,
                                                        "name": "inputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8147,
                                                        "src": "1814:11:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8192,
                                                                    "name": "path",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8139,
                                                                    "src": "1770:4:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8194,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "30",
                                                                    "id": 8193,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "1775:1:61",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "1770:7:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8191,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "1764:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 8195,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1764:14:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 8196,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transferFrom",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 423,
                                                    "src": "1764:27:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 8203,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "1764:62:61",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20496e697469616c207472616e7366657246726f6d206661696c656421",
                                                "id": 8204,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1840:44:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                },
                                                "value": "SwappaRouter: Initial transferFrom failed!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                }
                                            ],
                                            "id": 8190,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1743:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8205,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1743:151:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8206,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1743:151:61"
                                },
                                {
                                    "body": {
                                        "id": 8268,
                                        "nodeType": "Block",
                                        "src": "1940:289:61",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    8218,
                                                    8220
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8218,
                                                        "mutability": "mutable",
                                                        "name": "pairInput",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8268,
                                                        "src": "1955:17:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8217,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "1955:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    },
                                                    {
                                                        "constant": false,
                                                        "id": 8220,
                                                        "mutability": "mutable",
                                                        "name": "pairOutput",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8268,
                                                        "src": "1974:18:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8219,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "1974:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8230,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "components": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8221,
                                                                "name": "path",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8139,
                                                                "src": "1997:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                    "typeString": "address[] calldata"
                                                                }
                                                            },
                                                            "id": 8223,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8222,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8208,
                                                                "src": "2002:1:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "1997:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8224,
                                                                "name": "path",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8139,
                                                                "src": "2006:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                    "typeString": "address[] calldata"
                                                                }
                                                            },
                                                            "id": 8228,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 8227,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8225,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8208,
                                                                    "src": "2011:1:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "+",
                                                                "rightExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "31",
                                                                    "id": 8226,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "2015:1:61",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_1_by_1",
                                                                        "typeString": "int_const 1"
                                                                    },
                                                                    "value": "1"
                                                                },
                                                                "src": "2011:5:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "2006:11:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "id": 8229,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "TupleExpression",
                                                    "src": "1996:22:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
                                                        "typeString": "tuple(address,address)"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "1954:64:61"
                                            },
                                            {
                                                "assignments": [
                                                    8232
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8232,
                                                        "mutability": "mutable",
                                                        "name": "next",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8268,
                                                        "src": "2032:12:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8231,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "2032:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8249,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "condition": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 8238,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8233,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8208,
                                                            "src": "2047:1:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "<",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "id": 8237,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftExpression": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8234,
                                                                    "name": "pairs",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8142,
                                                                    "src": "2051:5:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8235,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "length",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "2051:12:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "BinaryOperation",
                                                            "operator": "-",
                                                            "rightExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "31",
                                                                "id": 8236,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "2066:1:61",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                    "typeString": "int_const 1"
                                                                },
                                                                "value": "1"
                                                            },
                                                            "src": "2051:16:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "2047:20:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 8246,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "2093:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                    "typeString": "contract SwappaRouterV1"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                    "typeString": "contract SwappaRouterV1"
                                                                }
                                                            ],
                                                            "id": 8245,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "2085:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 8244,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "2085:7:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": null,
                                                                    "typeString": null
                                                                }
                                                            }
                                                        },
                                                        "id": 8247,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2085:13:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "id": 8248,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "Conditional",
                                                    "src": "2047:51:61",
                                                    "trueExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8239,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8142,
                                                            "src": "2070:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8243,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "id": 8242,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8240,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8208,
                                                                "src": "2076:1:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "BinaryOperation",
                                                            "operator": "+",
                                                            "rightExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "31",
                                                                "id": 8241,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "2080:1:61",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                    "typeString": "int_const 1"
                                                                },
                                                                "value": "1"
                                                            },
                                                            "src": "2076:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "2070:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "2032:66:61"
                                            },
                                            {
                                                "assignments": [
                                                    8251
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8251,
                                                        "mutability": "mutable",
                                                        "name": "data",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8268,
                                                        "src": "2112:17:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes"
                                                        },
                                                        "typeName": {
                                                            "id": 8250,
                                                            "name": "bytes",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "2112:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                                "typeString": "bytes"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8255,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 8252,
                                                        "name": "extras",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8145,
                                                        "src": "2132:6:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                            "typeString": "bytes calldata[] calldata"
                                                        }
                                                    },
                                                    "id": 8254,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 8253,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8208,
                                                        "src": "2139:1:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "2132:9:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                                        "typeString": "bytes calldata"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "2112:29:61"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8262,
                                                            "name": "pairInput",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8218,
                                                            "src": "2184:9:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8263,
                                                            "name": "pairOutput",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8220,
                                                            "src": "2195:10:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8264,
                                                            "name": "next",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8232,
                                                            "src": "2207:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8265,
                                                            "name": "data",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8251,
                                                            "src": "2213:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8257,
                                                                        "name": "pairs",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8142,
                                                                        "src": "2169:5:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                            "typeString": "address[] calldata"
                                                                        }
                                                                    },
                                                                    "id": 8259,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8258,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8208,
                                                                        "src": "2175:1:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "2169:8:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8256,
                                                                "name": "ISwappaPairV1",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5325,
                                                                "src": "2155:13:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISwappaPairV1_$5325_$",
                                                                    "typeString": "type(contract ISwappaPairV1)"
                                                                }
                                                            },
                                                            "id": 8260,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "2155:23:61",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                                                "typeString": "contract ISwappaPairV1"
                                                            }
                                                        },
                                                        "id": 8261,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "swap",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 5311,
                                                        "src": "2155:28:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
                                                            "typeString": "function (address,address,address,bytes memory) external"
                                                        }
                                                    },
                                                    "id": 8266,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2155:63:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 8267,
                                                "nodeType": "ExpressionStatement",
                                                "src": "2155:63:61"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 8213,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 8210,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8208,
                                            "src": "1917:1:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 8211,
                                                "name": "pairs",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8142,
                                                "src": "1921:5:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                    "typeString": "address[] calldata"
                                                }
                                            },
                                            "id": 8212,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "1921:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "1917:16:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8269,
                                    "initializationExpression": {
                                        "assignments": [
                                            8208
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 8208,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "overrides": null,
                                                "scope": 8269,
                                                "src": "1909:6:61",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 8207,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "1909:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 8209,
                                        "initialValue": null,
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "1909:6:61"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 8215,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "1935:3:61",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 8214,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8208,
                                                "src": "1935:1:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8216,
                                        "nodeType": "ExpressionStatement",
                                        "src": "1935:3:61"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "1904:325:61"
                                },
                                {
                                    "assignments": [
                                        8271
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8271,
                                            "mutability": "mutable",
                                            "name": "output",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 8321,
                                            "src": "2390:14:61",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8270,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2390:7:61",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8278,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 8272,
                                            "name": "path",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8139,
                                            "src": "2407:4:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                            }
                                        },
                                        "id": 8277,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 8276,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8273,
                                                    "name": "path",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8139,
                                                    "src": "2412:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                        "typeString": "address[] calldata"
                                                    }
                                                },
                                                "id": 8274,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "length",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "2412:11:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "-",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 8275,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2426:1:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            },
                                            "src": "2412:15:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "2407:21:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2390:38:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 8289,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 8279,
                                            "name": "outputAmount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8160,
                                            "src": "2438:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8286,
                                                            "name": "this",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": -28,
                                                            "src": "2485:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                "typeString": "contract SwappaRouterV1"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                "typeString": "contract SwappaRouterV1"
                                                            }
                                                        ],
                                                        "id": 8285,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "2477:7:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": {
                                                            "id": 8284,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "2477:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 8287,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2477:13:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8281,
                                                            "name": "output",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8271,
                                                            "src": "2459:6:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 8280,
                                                        "name": "ERC20",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 725,
                                                        "src": "2453:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                            "typeString": "type(contract ERC20)"
                                                        }
                                                    },
                                                    "id": 8282,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "2453:13:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ERC20_$725",
                                                        "typeString": "contract ERC20"
                                                    }
                                                },
                                                "id": 8283,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "balanceOf",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 325,
                                                "src": "2453:23:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view external returns (uint256)"
                                                }
                                            },
                                            "id": 8288,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2453:38:61",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "2438:53:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8290,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2438:53:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8294,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8292,
                                                    "name": "outputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8160,
                                                    "src": "2522:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8293,
                                                    "name": "minOutputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8149,
                                                    "src": "2538:15:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "2522:31:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20496e73756666696369656e74206f757470757420616d6f756e7421",
                                                "id": 8295,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2567:43:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                },
                                                "value": "SwappaRouter: Insufficient output amount!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                }
                                            ],
                                            "id": 8291,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2501:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8296,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2501:119:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8297,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2501:119:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8303,
                                                        "name": "to",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8151,
                                                        "src": "2674:2:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8304,
                                                        "name": "outputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8160,
                                                        "src": "2678:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 8300,
                                                                "name": "output",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8271,
                                                                "src": "2657:6:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8299,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "2651:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 8301,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "2651:13:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 8302,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transfer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 346,
                                                    "src": "2651:22:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 8305,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "2651:40:61",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a2046696e616c207472616e73666572206661696c656421",
                                                "id": 8306,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2705:38:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                },
                                                "value": "SwappaRouter: Final transfer failed!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                }
                                            ],
                                            "id": 8298,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2630:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8307,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2630:123:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8308,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2630:123:61"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8310,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "2773:3:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 8311,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "2773:10:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8312,
                                                "name": "to",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8151,
                                                "src": "2785:2:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8313,
                                                    "name": "path",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8139,
                                                    "src": "2789:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                        "typeString": "address[] calldata"
                                                    }
                                                },
                                                "id": 8315,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 8314,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2794:1:61",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "2789:7:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8316,
                                                "name": "output",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8271,
                                                "src": "2798:6:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8317,
                                                "name": "inputAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8147,
                                                "src": "2806:11:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8318,
                                                "name": "outputAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8160,
                                                "src": "2819:12:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8309,
                                            "name": "Swap",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8066,
                                            "src": "2768:4:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,address,address,uint256,uint256)"
                                            }
                                        },
                                        "id": 8319,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2768:64:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8320,
                                    "nodeType": "EmitStatement",
                                    "src": "2763:69:61"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "0862d12f",
                        "id": 8322,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "id": 8157,
                                        "name": "deadline",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8153,
                                        "src": "1358:8:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 8158,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 8156,
                                    "name": "ensure",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8080,
                                    "src": "1351:6:61",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_uint256_$",
                                        "typeString": "modifier (uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "1351:16:61"
                            }
                        ],
                        "name": "swapExactInputForOutput",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8155,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "1342:8:61"
                        },
                        "parameters": {
                            "id": 8154,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8139,
                                    "mutability": "mutable",
                                    "name": "path",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1131:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8137,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1131:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8138,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "1131:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8142,
                                    "mutability": "mutable",
                                    "name": "pairs",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1164:24:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8140,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1164:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8141,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "1164:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8145,
                                    "mutability": "mutable",
                                    "name": "extras",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1198:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "bytes[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8143,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "1198:5:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                            }
                                        },
                                        "id": 8144,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "1198:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                                            "typeString": "bytes[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8147,
                                    "mutability": "mutable",
                                    "name": "inputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1231:19:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8146,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1231:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8149,
                                    "mutability": "mutable",
                                    "name": "minOutputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1260:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8148,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1260:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8151,
                                    "mutability": "mutable",
                                    "name": "to",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1293:10:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8150,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1293:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8153,
                                    "mutability": "mutable",
                                    "name": "deadline",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1313:13:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8152,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1313:4:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1121:211:61"
                        },
                        "returnParameters": {
                            "id": 8161,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8160,
                                    "mutability": "mutable",
                                    "name": "outputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8322,
                                    "src": "1377:20:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8159,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1377:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1376:22:61"
                        },
                        "scope": 8571,
                        "src": "1089:1750:61",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            5388
                        ],
                        "body": {
                            "id": 8565,
                            "nodeType": "Block",
                            "src": "3167:2386:61",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8355,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8349,
                                                        "name": "path",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8325,
                                                        "src": "3198:4:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8350,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "3198:11:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 8354,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 8351,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8328,
                                                            "src": "3213:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8352,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "3213:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "+",
                                                    "rightExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "31",
                                                        "id": 8353,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "3228:1:61",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_1_by_1",
                                                            "typeString": "int_const 1"
                                                        },
                                                        "value": "1"
                                                    },
                                                    "src": "3213:16:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "3198:31:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a205061746820616e64205061697273206d69736d6174636821",
                                                "id": 8356,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3243:40:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                },
                                                "value": "SwappaRouter: Path and Pairs mismatch!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                }
                                            ],
                                            "id": 8348,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "3177:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8357,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3177:116:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8358,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3177:116:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8364,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8360,
                                                        "name": "pairs",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8328,
                                                        "src": "3324:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8361,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "3324:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8362,
                                                        "name": "extras",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8331,
                                                        "src": "3340:6:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                            "typeString": "bytes calldata[] calldata"
                                                        }
                                                    },
                                                    "id": 8363,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "3340:13:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "3324:29:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20506169727320616e6420457874726173206d69736d6174636821",
                                                "id": 8365,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3367:42:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                },
                                                "value": "SwappaRouter: Pairs and Extras mismatch!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                }
                                            ],
                                            "id": 8359,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "3303:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8366,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3303:116:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8367,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3303:116:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8372,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8369,
                                                        "name": "pairs",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8328,
                                                        "src": "3437:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8370,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "3437:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 8371,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3452:1:61",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "3437:16:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a204d7573742068617665206174206c65617374206f6e65207061697221",
                                                "id": 8373,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3455:44:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                },
                                                "value": "SwappaRouter: Must have at least one pair!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                }
                                            ],
                                            "id": 8368,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "3429:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8374,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3429:71:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8375,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3429:71:61"
                                },
                                {
                                    "id": 8433,
                                    "nodeType": "Block",
                                    "src": "3787:660:61",
                                    "statements": [
                                        {
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 8378,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftHandSide": {
                                                    "argumentTypes": null,
                                                    "id": 8376,
                                                    "name": "outputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8346,
                                                    "src": "3801:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "Assignment",
                                                "operator": "=",
                                                "rightHandSide": {
                                                    "argumentTypes": null,
                                                    "id": 8377,
                                                    "name": "inputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8333,
                                                    "src": "3816:11:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "3801:26:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "id": 8379,
                                            "nodeType": "ExpressionStatement",
                                            "src": "3801:26:61"
                                        },
                                        {
                                            "body": {
                                                "id": 8424,
                                                "nodeType": "Block",
                                                "src": "3942:341:61",
                                                "statements": [
                                                    {
                                                        "assignments": [
                                                            8391,
                                                            8393
                                                        ],
                                                        "declarations": [
                                                            {
                                                                "constant": false,
                                                                "id": 8391,
                                                                "mutability": "mutable",
                                                                "name": "input",
                                                                "nodeType": "VariableDeclaration",
                                                                "overrides": null,
                                                                "scope": 8424,
                                                                "src": "3961:13:61",
                                                                "stateVariable": false,
                                                                "storageLocation": "default",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                "typeName": {
                                                                    "id": 8390,
                                                                    "name": "address",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "3961:7:61",
                                                                    "stateMutability": "nonpayable",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "value": null,
                                                                "visibility": "internal"
                                                            },
                                                            {
                                                                "constant": false,
                                                                "id": 8393,
                                                                "mutability": "mutable",
                                                                "name": "output",
                                                                "nodeType": "VariableDeclaration",
                                                                "overrides": null,
                                                                "scope": 8424,
                                                                "src": "3976:14:61",
                                                                "stateVariable": false,
                                                                "storageLocation": "default",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                "typeName": {
                                                                    "id": 8392,
                                                                    "name": "address",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "3976:7:61",
                                                                    "stateMutability": "nonpayable",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "value": null,
                                                                "visibility": "internal"
                                                            }
                                                        ],
                                                        "id": 8403,
                                                        "initialValue": {
                                                            "argumentTypes": null,
                                                            "components": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8394,
                                                                        "name": "path",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8325,
                                                                        "src": "3995:4:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                            "typeString": "address[] calldata"
                                                                        }
                                                                    },
                                                                    "id": 8396,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8395,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8381,
                                                                        "src": "4000:1:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "3995:7:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8397,
                                                                        "name": "path",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8325,
                                                                        "src": "4004:4:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                            "typeString": "address[] calldata"
                                                                        }
                                                                    },
                                                                    "id": 8401,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "commonType": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "id": 8400,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "leftExpression": {
                                                                            "argumentTypes": null,
                                                                            "id": 8398,
                                                                            "name": "i",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8381,
                                                                            "src": "4009:1:61",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "nodeType": "BinaryOperation",
                                                                        "operator": "+",
                                                                        "rightExpression": {
                                                                            "argumentTypes": null,
                                                                            "hexValue": "31",
                                                                            "id": 8399,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "kind": "number",
                                                                            "lValueRequested": false,
                                                                            "nodeType": "Literal",
                                                                            "src": "4013:1:61",
                                                                            "subdenomination": null,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_rational_1_by_1",
                                                                                "typeString": "int_const 1"
                                                                            },
                                                                            "value": "1"
                                                                        },
                                                                        "src": "4009:5:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "4004:11:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "id": 8402,
                                                            "isConstant": false,
                                                            "isInlineArray": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "TupleExpression",
                                                            "src": "3994:22:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
                                                                "typeString": "tuple(address,address)"
                                                            }
                                                        },
                                                        "nodeType": "VariableDeclarationStatement",
                                                        "src": "3960:56:61"
                                                    },
                                                    {
                                                        "assignments": [
                                                            8405
                                                        ],
                                                        "declarations": [
                                                            {
                                                                "constant": false,
                                                                "id": 8405,
                                                                "mutability": "mutable",
                                                                "name": "data",
                                                                "nodeType": "VariableDeclaration",
                                                                "overrides": null,
                                                                "scope": 8424,
                                                                "src": "4034:17:61",
                                                                "stateVariable": false,
                                                                "storageLocation": "memory",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes"
                                                                },
                                                                "typeName": {
                                                                    "id": 8404,
                                                                    "name": "bytes",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "4034:5:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes_storage_ptr",
                                                                        "typeString": "bytes"
                                                                    }
                                                                },
                                                                "value": null,
                                                                "visibility": "internal"
                                                            }
                                                        ],
                                                        "id": 8409,
                                                        "initialValue": {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8406,
                                                                "name": "extras",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8331,
                                                                "src": "4054:6:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                                    "typeString": "bytes calldata[] calldata"
                                                                }
                                                            },
                                                            "id": 8408,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8407,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8381,
                                                                "src": "4061:1:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "4054:9:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_calldata_ptr",
                                                                "typeString": "bytes calldata"
                                                            }
                                                        },
                                                        "nodeType": "VariableDeclarationStatement",
                                                        "src": "4034:29:61"
                                                    },
                                                    {
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 8422,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftHandSide": {
                                                                "argumentTypes": null,
                                                                "id": 8410,
                                                                "name": "outputAmount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8346,
                                                                "src": "4081:12:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "Assignment",
                                                            "operator": "=",
                                                            "rightHandSide": {
                                                                "argumentTypes": null,
                                                                "arguments": [
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 8417,
                                                                        "name": "input",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8391,
                                                                        "src": "4157:5:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 8418,
                                                                        "name": "output",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8393,
                                                                        "src": "4184:6:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 8419,
                                                                        "name": "outputAmount",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8346,
                                                                        "src": "4212:12:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "argumentTypes": null,
                                                                        "id": 8420,
                                                                        "name": "data",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8405,
                                                                        "src": "4246:4:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                                            "typeString": "bytes memory"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": null,
                                                                        "arguments": [
                                                                            {
                                                                                "argumentTypes": null,
                                                                                "baseExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 8412,
                                                                                    "name": "pairs",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8328,
                                                                                    "src": "4110:5:61",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                                        "typeString": "address[] calldata"
                                                                                    }
                                                                                },
                                                                                "id": 8414,
                                                                                "indexExpression": {
                                                                                    "argumentTypes": null,
                                                                                    "id": 8413,
                                                                                    "name": "i",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8381,
                                                                                    "src": "4116:1:61",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "4110:8:61",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 8411,
                                                                            "name": "ISwappaPairV1",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 5325,
                                                                            "src": "4096:13:61",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_ISwappaPairV1_$5325_$",
                                                                                "typeString": "type(contract ISwappaPairV1)"
                                                                            }
                                                                        },
                                                                        "id": 8415,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "4096:23:61",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                                                            "typeString": "contract ISwappaPairV1"
                                                                        }
                                                                    },
                                                                    "id": 8416,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "getOutputAmount",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 5324,
                                                                    "src": "4096:39:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                                                                        "typeString": "function (address,address,uint256,bytes memory) external returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 8421,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "4096:172:61",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "src": "4081:187:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 8423,
                                                        "nodeType": "ExpressionStatement",
                                                        "src": "4081:187:61"
                                                    }
                                                ]
                                            },
                                            "condition": {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8386,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8383,
                                                    "name": "i",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8381,
                                                    "src": "3919:1:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "<",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 8384,
                                                        "name": "pairs",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8328,
                                                        "src": "3923:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                            "typeString": "address[] calldata"
                                                        }
                                                    },
                                                    "id": 8385,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "3923:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "3919:16:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "id": 8425,
                                            "initializationExpression": {
                                                "assignments": [
                                                    8381
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8381,
                                                        "mutability": "mutable",
                                                        "name": "i",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8425,
                                                        "src": "3911:6:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 8380,
                                                            "name": "uint",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "3911:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8382,
                                                "initialValue": null,
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "3911:6:61"
                                            },
                                            "loopExpression": {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8388,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "UnaryOperation",
                                                    "operator": "++",
                                                    "prefix": false,
                                                    "src": "3937:3:61",
                                                    "subExpression": {
                                                        "argumentTypes": null,
                                                        "id": 8387,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8381,
                                                        "src": "3937:1:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 8389,
                                                "nodeType": "ExpressionStatement",
                                                "src": "3937:3:61"
                                            },
                                            "nodeType": "ForStatement",
                                            "src": "3906:377:61"
                                        },
                                        {
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 8429,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8427,
                                                            "name": "outputAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8346,
                                                            "src": "4321:12:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8428,
                                                            "name": "minOutputAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8335,
                                                            "src": "4337:15:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "4321:31:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "hexValue": "537761707061526f757465723a20496e73756666696369656e74206578706563746564206f757470757420616d6f756e7421",
                                                        "id": 8430,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "4370:52:61",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_92c647a9df827f435e95e55348ef3d9783657104085606ff16cb5738ddbeffe7",
                                                            "typeString": "literal_string \"SwappaRouter: Insufficient expected output amount!\""
                                                        },
                                                        "value": "SwappaRouter: Insufficient expected output amount!"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_stringliteral_92c647a9df827f435e95e55348ef3d9783657104085606ff16cb5738ddbeffe7",
                                                            "typeString": "literal_string \"SwappaRouter: Insufficient expected output amount!\""
                                                        }
                                                    ],
                                                    "id": 8426,
                                                    "name": "require",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [
                                                        -18,
                                                        -18
                                                    ],
                                                    "referencedDeclaration": -18,
                                                    "src": "4296:7:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                        "typeString": "function (bool,string memory) pure"
                                                    }
                                                },
                                                "id": 8431,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4296:140:61",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_tuple$__$",
                                                    "typeString": "tuple()"
                                                }
                                            },
                                            "id": 8432,
                                            "nodeType": "ExpressionStatement",
                                            "src": "4296:140:61"
                                        }
                                    ]
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "id": 8441,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": -15,
                                                            "src": "4506:3:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 8442,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": null,
                                                        "src": "4506:10:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8443,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8328,
                                                            "src": "4518:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8445,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 8444,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "4524:1:61",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4518:8:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8446,
                                                        "name": "inputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8333,
                                                        "src": "4528:11:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "baseExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8436,
                                                                    "name": "path",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8325,
                                                                    "src": "4484:4:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8438,
                                                                "indexExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "30",
                                                                    "id": 8437,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "4489:1:61",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "4484:7:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8435,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "4478:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 8439,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4478:14:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 8440,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transferFrom",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 423,
                                                    "src": "4478:27:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 8447,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "4478:62:61",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20496e697469616c207472616e7366657246726f6d206661696c656421",
                                                "id": 8448,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "4554:44:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                },
                                                "value": "SwappaRouter: Initial transferFrom failed!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                }
                                            ],
                                            "id": 8434,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "4457:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8449,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4457:151:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8450,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4457:151:61"
                                },
                                {
                                    "body": {
                                        "id": 8512,
                                        "nodeType": "Block",
                                        "src": "4654:289:61",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    8462,
                                                    8464
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8462,
                                                        "mutability": "mutable",
                                                        "name": "pairInput",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8512,
                                                        "src": "4669:17:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8461,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4669:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    },
                                                    {
                                                        "constant": false,
                                                        "id": 8464,
                                                        "mutability": "mutable",
                                                        "name": "pairOutput",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8512,
                                                        "src": "4688:18:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8463,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4688:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8474,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "components": [
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8465,
                                                                "name": "path",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8325,
                                                                "src": "4711:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                    "typeString": "address[] calldata"
                                                                }
                                                            },
                                                            "id": 8467,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8466,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8452,
                                                                "src": "4716:1:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "4711:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "baseExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8468,
                                                                "name": "path",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8325,
                                                                "src": "4720:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                    "typeString": "address[] calldata"
                                                                }
                                                            },
                                                            "id": 8472,
                                                            "indexExpression": {
                                                                "argumentTypes": null,
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 8471,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8469,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8452,
                                                                    "src": "4725:1:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "+",
                                                                "rightExpression": {
                                                                    "argumentTypes": null,
                                                                    "hexValue": "31",
                                                                    "id": 8470,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "4729:1:61",
                                                                    "subdenomination": null,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_1_by_1",
                                                                        "typeString": "int_const 1"
                                                                    },
                                                                    "value": "1"
                                                                },
                                                                "src": "4725:5:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "4720:11:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "id": 8473,
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "TupleExpression",
                                                    "src": "4710:22:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
                                                        "typeString": "tuple(address,address)"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "4668:64:61"
                                            },
                                            {
                                                "assignments": [
                                                    8476
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8476,
                                                        "mutability": "mutable",
                                                        "name": "next",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8512,
                                                        "src": "4746:12:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 8475,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4746:7:61",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8493,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "condition": {
                                                        "argumentTypes": null,
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 8482,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8477,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8452,
                                                            "src": "4761:1:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "<",
                                                        "rightExpression": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "id": 8481,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftExpression": {
                                                                "argumentTypes": null,
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "id": 8478,
                                                                    "name": "pairs",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8328,
                                                                    "src": "4765:5:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                        "typeString": "address[] calldata"
                                                                    }
                                                                },
                                                                "id": 8479,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "length",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": null,
                                                                "src": "4765:12:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "BinaryOperation",
                                                            "operator": "-",
                                                            "rightExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "31",
                                                                "id": 8480,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "4780:1:61",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                    "typeString": "int_const 1"
                                                                },
                                                                "value": "1"
                                                            },
                                                            "src": "4765:16:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "4761:20:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseExpression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 8490,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "4807:4:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                    "typeString": "contract SwappaRouterV1"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                    "typeString": "contract SwappaRouterV1"
                                                                }
                                                            ],
                                                            "id": 8489,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "4799:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 8488,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "4799:7:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": null,
                                                                    "typeString": null
                                                                }
                                                            }
                                                        },
                                                        "id": 8491,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "4799:13:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "id": 8492,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "Conditional",
                                                    "src": "4761:51:61",
                                                    "trueExpression": {
                                                        "argumentTypes": null,
                                                        "baseExpression": {
                                                            "argumentTypes": null,
                                                            "id": 8483,
                                                            "name": "pairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8328,
                                                            "src": "4784:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                "typeString": "address[] calldata"
                                                            }
                                                        },
                                                        "id": 8487,
                                                        "indexExpression": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "id": 8486,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftExpression": {
                                                                "argumentTypes": null,
                                                                "id": 8484,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8452,
                                                                "src": "4790:1:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "BinaryOperation",
                                                            "operator": "+",
                                                            "rightExpression": {
                                                                "argumentTypes": null,
                                                                "hexValue": "31",
                                                                "id": 8485,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "4794:1:61",
                                                                "subdenomination": null,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                    "typeString": "int_const 1"
                                                                },
                                                                "value": "1"
                                                            },
                                                            "src": "4790:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "4784:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "4746:66:61"
                                            },
                                            {
                                                "assignments": [
                                                    8495
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8495,
                                                        "mutability": "mutable",
                                                        "name": "data",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 8512,
                                                        "src": "4826:17:61",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes"
                                                        },
                                                        "typeName": {
                                                            "id": 8494,
                                                            "name": "bytes",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "4826:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                                "typeString": "bytes"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8499,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 8496,
                                                        "name": "extras",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8331,
                                                        "src": "4846:6:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                                            "typeString": "bytes calldata[] calldata"
                                                        }
                                                    },
                                                    "id": 8498,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "id": 8497,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8452,
                                                        "src": "4853:1:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "4846:9:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                                        "typeString": "bytes calldata"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "4826:29:61"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8506,
                                                            "name": "pairInput",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8462,
                                                            "src": "4898:9:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8507,
                                                            "name": "pairOutput",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8464,
                                                            "src": "4909:10:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8508,
                                                            "name": "next",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8476,
                                                            "src": "4921:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8509,
                                                            "name": "data",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8495,
                                                            "src": "4927:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "baseExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8501,
                                                                        "name": "pairs",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8328,
                                                                        "src": "4883:5:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                                            "typeString": "address[] calldata"
                                                                        }
                                                                    },
                                                                    "id": 8503,
                                                                    "indexExpression": {
                                                                        "argumentTypes": null,
                                                                        "id": 8502,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8452,
                                                                        "src": "4889:1:61",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "4883:8:61",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8500,
                                                                "name": "ISwappaPairV1",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 5325,
                                                                "src": "4869:13:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISwappaPairV1_$5325_$",
                                                                    "typeString": "type(contract ISwappaPairV1)"
                                                                }
                                                            },
                                                            "id": 8504,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "4869:23:61",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                                                "typeString": "contract ISwappaPairV1"
                                                            }
                                                        },
                                                        "id": 8505,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "swap",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 5311,
                                                        "src": "4869:28:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
                                                            "typeString": "function (address,address,address,bytes memory) external"
                                                        }
                                                    },
                                                    "id": 8510,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "4869:63:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 8511,
                                                "nodeType": "ExpressionStatement",
                                                "src": "4869:63:61"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 8457,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 8454,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8452,
                                            "src": "4631:1:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "expression": {
                                                "argumentTypes": null,
                                                "id": 8455,
                                                "name": "pairs",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8328,
                                                "src": "4635:5:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                    "typeString": "address[] calldata"
                                                }
                                            },
                                            "id": 8456,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": null,
                                            "src": "4635:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "4631:16:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8513,
                                    "initializationExpression": {
                                        "assignments": [
                                            8452
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 8452,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "overrides": null,
                                                "scope": 8513,
                                                "src": "4623:6:61",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 8451,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "4623:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "value": null,
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 8453,
                                        "initialValue": null,
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "4623:6:61"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "argumentTypes": null,
                                            "id": 8459,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "4649:3:61",
                                            "subExpression": {
                                                "argumentTypes": null,
                                                "id": 8458,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8452,
                                                "src": "4649:1:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8460,
                                        "nodeType": "ExpressionStatement",
                                        "src": "4649:3:61"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "4618:325:61"
                                },
                                {
                                    "assignments": [
                                        8515
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8515,
                                            "mutability": "mutable",
                                            "name": "output",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 8565,
                                            "src": "5104:14:61",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8514,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5104:7:61",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8522,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 8516,
                                            "name": "path",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8325,
                                            "src": "5121:4:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                            }
                                        },
                                        "id": 8521,
                                        "indexExpression": {
                                            "argumentTypes": null,
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 8520,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8517,
                                                    "name": "path",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8325,
                                                    "src": "5126:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                        "typeString": "address[] calldata"
                                                    }
                                                },
                                                "id": 8518,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "length",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "5126:11:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "-",
                                            "rightExpression": {
                                                "argumentTypes": null,
                                                "hexValue": "31",
                                                "id": 8519,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5140:1:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            },
                                            "src": "5126:15:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5121:21:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5104:38:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 8533,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 8523,
                                            "name": "outputAmount",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8346,
                                            "src": "5152:12:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8530,
                                                            "name": "this",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": -28,
                                                            "src": "5199:4:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                "typeString": "contract SwappaRouterV1"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                "typeString": "contract SwappaRouterV1"
                                                            }
                                                        ],
                                                        "id": 8529,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "5191:7:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": {
                                                            "id": 8528,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "5191:7:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 8531,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5191:13:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 8525,
                                                            "name": "output",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8515,
                                                            "src": "5173:6:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 8524,
                                                        "name": "ERC20",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 725,
                                                        "src": "5167:5:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                            "typeString": "type(contract ERC20)"
                                                        }
                                                    },
                                                    "id": 8526,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5167:13:61",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_ERC20_$725",
                                                        "typeString": "contract ERC20"
                                                    }
                                                },
                                                "id": 8527,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "balanceOf",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 325,
                                                "src": "5167:23:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                    "typeString": "function (address) view external returns (uint256)"
                                                }
                                            },
                                            "id": 8532,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5167:38:61",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "5152:53:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8534,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5152:53:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8538,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8536,
                                                    "name": "outputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8346,
                                                    "src": "5236:12:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8537,
                                                    "name": "minOutputAmount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8335,
                                                    "src": "5252:15:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "5236:31:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a20496e73756666696369656e74206f757470757420616d6f756e7421",
                                                "id": 8539,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5281:43:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                },
                                                "value": "SwappaRouter: Insufficient output amount!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                }
                                            ],
                                            "id": 8535,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "5215:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8540,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5215:119:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8541,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5215:119:61"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8547,
                                                        "name": "to",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8337,
                                                        "src": "5388:2:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 8548,
                                                        "name": "outputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8346,
                                                        "src": "5392:12:61",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 8544,
                                                                "name": "output",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8515,
                                                                "src": "5371:6:61",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8543,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "5365:5:61",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 8545,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5365:13:61",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 8546,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transfer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 346,
                                                    "src": "5365:22:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 8549,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5365:40:61",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "537761707061526f757465723a2046696e616c207472616e73666572206661696c656421",
                                                "id": 8550,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5419:38:61",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                },
                                                "value": "SwappaRouter: Final transfer failed!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                }
                                            ],
                                            "id": 8542,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "5344:7:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8551,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5344:123:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8552,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5344:123:61"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 8554,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "5487:3:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 8555,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "5487:10:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8556,
                                                "name": "to",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8337,
                                                "src": "5499:2:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                    "argumentTypes": null,
                                                    "id": 8557,
                                                    "name": "path",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8325,
                                                    "src": "5503:4:61",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                        "typeString": "address[] calldata"
                                                    }
                                                },
                                                "id": 8559,
                                                "indexExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "30",
                                                    "id": 8558,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "5508:1:61",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "5503:7:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8560,
                                                "name": "output",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8515,
                                                "src": "5512:6:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8561,
                                                "name": "inputAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8333,
                                                "src": "5520:11:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 8562,
                                                "name": "outputAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8346,
                                                "src": "5533:12:61",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8553,
                                            "name": "Swap",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8066,
                                            "src": "5482:4:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,address,address,address,uint256,uint256)"
                                            }
                                        },
                                        "id": 8563,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5482:64:61",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8564,
                                    "nodeType": "EmitStatement",
                                    "src": "5477:69:61"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "adf6fa02",
                        "id": 8566,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "argumentTypes": null,
                                        "id": 8343,
                                        "name": "deadline",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8339,
                                        "src": "3126:8:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    }
                                ],
                                "id": 8344,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 8342,
                                    "name": "ensure",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8080,
                                    "src": "3119:6:61",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_uint256_$",
                                        "typeString": "modifier (uint256)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "3119:16:61"
                            }
                        ],
                        "name": "swapExactInputForOutputWithPrecheck",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8341,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "3110:8:61"
                        },
                        "parameters": {
                            "id": 8340,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8325,
                                    "mutability": "mutable",
                                    "name": "path",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "2899:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8323,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "2899:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8324,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "2899:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8328,
                                    "mutability": "mutable",
                                    "name": "pairs",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "2932:24:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8326,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "2932:7:61",
                                            "stateMutability": "nonpayable",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 8327,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "2932:9:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                            "typeString": "address[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8331,
                                    "mutability": "mutable",
                                    "name": "extras",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "2966:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "bytes[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8329,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "2966:5:61",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                            }
                                        },
                                        "id": 8330,
                                        "length": null,
                                        "nodeType": "ArrayTypeName",
                                        "src": "2966:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                                            "typeString": "bytes[]"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8333,
                                    "mutability": "mutable",
                                    "name": "inputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "2999:19:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8332,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2999:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8335,
                                    "mutability": "mutable",
                                    "name": "minOutputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "3028:23:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8334,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3028:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8337,
                                    "mutability": "mutable",
                                    "name": "to",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "3061:10:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8336,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3061:7:61",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8339,
                                    "mutability": "mutable",
                                    "name": "deadline",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "3081:13:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8338,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3081:4:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2889:211:61"
                        },
                        "returnParameters": {
                            "id": 8347,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8346,
                                    "mutability": "mutable",
                                    "name": "outputAmount",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 8566,
                                    "src": "3145:20:61",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8345,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3145:7:61",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3144:22:61"
                        },
                        "scope": 8571,
                        "src": "2845:2708:61",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 8569,
                            "nodeType": "Block",
                            "src": "5586:2:61",
                            "statements": []
                        },
                        "documentation": null,
                        "id": 8570,
                        "implemented": true,
                        "kind": "receive",
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 8567,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5566:2:61"
                        },
                        "returnParameters": {
                            "id": 8568,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5586:0:61"
                        },
                        "scope": 8571,
                        "src": "5559:29:61",
                        "stateMutability": "payable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "scope": 8572,
                "src": "209:5381:61"
            }
        ],
        "src": "32:5559:61"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/swappa/SwappaRouterV1.sol",
            "exportedSymbols": {
                "SwappaRouterV1": [
                    8571
                ]
            },
            "license": "MIT"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.6",
                        ".8"
                    ]
                },
                "id": 8046,
                "name": "PragmaDirective",
                "src": "32:22:61"
            },
            {
                "attributes": {
                    "literals": [
                        "experimental",
                        "ABIEncoderV2"
                    ]
                },
                "id": 8047,
                "name": "PragmaDirective",
                "src": "55:33:61"
            },
            {
                "attributes": {
                    "SourceUnit": 726,
                    "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "scope": 8572,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 8048,
                "name": "ImportDirective",
                "src": "90:55:61"
            },
            {
                "attributes": {
                    "SourceUnit": 5326,
                    "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                    "file": "./ISwappaPairV1.sol",
                    "scope": 8572,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 8049,
                "name": "ImportDirective",
                "src": "146:29:61"
            },
            {
                "attributes": {
                    "SourceUnit": 5390,
                    "absolutePath": "project:/contracts/swappa/ISwappaRouterV1.sol",
                    "file": "./ISwappaRouterV1.sol",
                    "scope": 8572,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 8050,
                "name": "ImportDirective",
                "src": "176:31:61"
            },
            {
                "attributes": {
                    "abstract": false,
                    "contractDependencies": [
                        5389
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        8571,
                        5389
                    ],
                    "name": "SwappaRouterV1",
                    "scope": 8572
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ISwappaRouterV1",
                                    "referencedDeclaration": 5389,
                                    "type": "contract ISwappaRouterV1"
                                },
                                "id": 8051,
                                "name": "UserDefinedTypeName",
                                "src": "236:15:61"
                            }
                        ],
                        "id": 8052,
                        "name": "InheritanceSpecifier",
                        "src": "236:15:61"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "documentation": null,
                            "name": "Swap"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8053,
                                                "name": "ElementaryTypeName",
                                                "src": "278:7:61"
                                            }
                                        ],
                                        "id": 8054,
                                        "name": "VariableDeclaration",
                                        "src": "278:22:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "to",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8055,
                                                "name": "ElementaryTypeName",
                                                "src": "310:7:61"
                                            }
                                        ],
                                        "id": 8056,
                                        "name": "VariableDeclaration",
                                        "src": "310:10:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "input",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8057,
                                                "name": "ElementaryTypeName",
                                                "src": "330:7:61"
                                            }
                                        ],
                                        "id": 8058,
                                        "name": "VariableDeclaration",
                                        "src": "330:21:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "output",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8059,
                                                "name": "ElementaryTypeName",
                                                "src": "361:7:61"
                                            }
                                        ],
                                        "id": 8060,
                                        "name": "VariableDeclaration",
                                        "src": "361:22:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8061,
                                                "name": "ElementaryTypeName",
                                                "src": "393:7:61"
                                            }
                                        ],
                                        "id": 8062,
                                        "name": "VariableDeclaration",
                                        "src": "393:19:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "overrides": null,
                                            "scope": 8066,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8063,
                                                "name": "ElementaryTypeName",
                                                "src": "422:7:61"
                                            }
                                        ],
                                        "id": 8064,
                                        "name": "VariableDeclaration",
                                        "src": "422:20:61"
                                    }
                                ],
                                "id": 8065,
                                "name": "ParameterList",
                                "src": "268:180:61"
                            }
                        ],
                        "id": 8066,
                        "name": "EventDefinition",
                        "src": "258:191:61"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "name": "ensure",
                            "overrides": null,
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "deadline",
                                            "overrides": null,
                                            "scope": 8080,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 8067,
                                                "name": "ElementaryTypeName",
                                                "src": "471:4:61"
                                            }
                                        ],
                                        "id": 8068,
                                        "name": "VariableDeclaration",
                                        "src": "471:13:61"
                                    }
                                ],
                                "id": 8069,
                                "name": "ParameterList",
                                "src": "470:15:61"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9ed8592ea2f5619ebcb3e301962e66ed8fe7649ccf8e6d5cbf672aa0763f3846",
                                                                    "typeString": "literal_string \"SwappaRouter: Expired!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8070,
                                                        "name": "Identifier",
                                                        "src": "496:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8068,
                                                                    "type": "uint256",
                                                                    "value": "deadline"
                                                                },
                                                                "id": 8071,
                                                                "name": "Identifier",
                                                                "src": "504:8:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "timestamp",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -4,
                                                                            "type": "block",
                                                                            "value": "block"
                                                                        },
                                                                        "id": 8072,
                                                                        "name": "Identifier",
                                                                        "src": "516:5:61"
                                                                    }
                                                                ],
                                                                "id": 8073,
                                                                "name": "MemberAccess",
                                                                "src": "516:15:61"
                                                            }
                                                        ],
                                                        "id": 8074,
                                                        "name": "BinaryOperation",
                                                        "src": "504:27:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a204578706972656421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Expired!\"",
                                                            "value": "SwappaRouter: Expired!"
                                                        },
                                                        "id": 8075,
                                                        "name": "Literal",
                                                        "src": "533:24:61"
                                                    }
                                                ],
                                                "id": 8076,
                                                "name": "FunctionCall",
                                                "src": "496:62:61"
                                            }
                                        ],
                                        "id": 8077,
                                        "name": "ExpressionStatement",
                                        "src": "496:62:61"
                                    },
                                    {
                                        "id": 8078,
                                        "name": "PlaceholderStatement",
                                        "src": "568:1:61"
                                    }
                                ],
                                "id": 8079,
                                "name": "Block",
                                "src": "486:90:61"
                            }
                        ],
                        "id": 8080,
                        "name": "ModifierDefinition",
                        "src": "455:121:61"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5344
                            ],
                            "documentation": null,
                            "functionSelector": "e2f46a00",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getOutputAmount",
                            "scope": 8571,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8093,
                                "name": "OverrideSpecifier",
                                "src": "751:8:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "path",
                                            "overrides": null,
                                            "scope": 8136,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8081,
                                                        "name": "ElementaryTypeName",
                                                        "src": "616:7:61"
                                                    }
                                                ],
                                                "id": 8082,
                                                "name": "ArrayTypeName",
                                                "src": "616:9:61"
                                            }
                                        ],
                                        "id": 8083,
                                        "name": "VariableDeclaration",
                                        "src": "616:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "pairs",
                                            "overrides": null,
                                            "scope": 8136,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8084,
                                                        "name": "ElementaryTypeName",
                                                        "src": "649:7:61"
                                                    }
                                                ],
                                                "id": 8085,
                                                "name": "ArrayTypeName",
                                                "src": "649:9:61"
                                            }
                                        ],
                                        "id": 8086,
                                        "name": "VariableDeclaration",
                                        "src": "649:24:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "extras",
                                            "overrides": null,
                                            "scope": 8136,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 8087,
                                                        "name": "ElementaryTypeName",
                                                        "src": "683:5:61"
                                                    }
                                                ],
                                                "id": 8088,
                                                "name": "ArrayTypeName",
                                                "src": "683:7:61"
                                            }
                                        ],
                                        "id": 8089,
                                        "name": "VariableDeclaration",
                                        "src": "683:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "overrides": null,
                                            "scope": 8136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8090,
                                                "name": "ElementaryTypeName",
                                                "src": "716:7:61"
                                            }
                                        ],
                                        "id": 8091,
                                        "name": "VariableDeclaration",
                                        "src": "716:19:61"
                                    }
                                ],
                                "id": 8092,
                                "name": "ParameterList",
                                "src": "606:135:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "overrides": null,
                                            "scope": 8136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8094,
                                                "name": "ElementaryTypeName",
                                                "src": "769:7:61"
                                            }
                                        ],
                                        "id": 8095,
                                        "name": "VariableDeclaration",
                                        "src": "769:20:61"
                                    }
                                ],
                                "id": 8096,
                                "name": "ParameterList",
                                "src": "768:22:61"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8095,
                                                            "type": "uint256",
                                                            "value": "outputAmount"
                                                        },
                                                        "id": 8097,
                                                        "name": "Identifier",
                                                        "src": "801:12:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8091,
                                                            "type": "uint256",
                                                            "value": "inputAmount"
                                                        },
                                                        "id": 8098,
                                                        "name": "Identifier",
                                                        "src": "816:11:61"
                                                    }
                                                ],
                                                "id": 8099,
                                                "name": "Assignment",
                                                "src": "801:26:61"
                                            }
                                        ],
                                        "id": 8100,
                                        "name": "ExpressionStatement",
                                        "src": "801:26:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        8102
                                                    ],
                                                    "initialValue": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "i",
                                                            "overrides": null,
                                                            "scope": 8134,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 8101,
                                                                "name": "ElementaryTypeName",
                                                                "src": "842:4:61"
                                                            }
                                                        ],
                                                        "id": 8102,
                                                        "name": "VariableDeclaration",
                                                        "src": "842:6:61"
                                                    }
                                                ],
                                                "id": 8103,
                                                "name": "VariableDeclarationStatement",
                                                "src": "842:6:61"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8102,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8104,
                                                        "name": "Identifier",
                                                        "src": "850:1:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8086,
                                                                    "type": "address[] calldata",
                                                                    "value": "pairs"
                                                                },
                                                                "id": 8105,
                                                                "name": "Identifier",
                                                                "src": "854:5:61"
                                                            }
                                                        ],
                                                        "id": 8106,
                                                        "name": "MemberAccess",
                                                        "src": "854:12:61"
                                                    }
                                                ],
                                                "id": 8107,
                                                "name": "BinaryOperation",
                                                "src": "850:16:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8102,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8108,
                                                                "name": "Identifier",
                                                                "src": "868:1:61"
                                                            }
                                                        ],
                                                        "id": 8109,
                                                        "name": "UnaryOperation",
                                                        "src": "868:3:61"
                                                    }
                                                ],
                                                "id": 8110,
                                                "name": "ExpressionStatement",
                                                "src": "868:3:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8095,
                                                                            "type": "uint256",
                                                                            "value": "outputAmount"
                                                                        },
                                                                        "id": 8111,
                                                                        "name": "Identifier",
                                                                        "src": "887:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes_calldata_ptr",
                                                                                            "typeString": "bytes calldata"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getOutputAmount",
                                                                                    "referencedDeclaration": 5324,
                                                                                    "type": "function (address,address,uint256,bytes memory) external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract ISwappaPairV1",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 5325,
                                                                                                    "type": "type(contract ISwappaPairV1)",
                                                                                                    "value": "ISwappaPairV1"
                                                                                                },
                                                                                                "id": 8112,
                                                                                                "name": "Identifier",
                                                                                                "src": "902:13:61"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8086,
                                                                                                            "type": "address[] calldata",
                                                                                                            "value": "pairs"
                                                                                                        },
                                                                                                        "id": 8113,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "916:5:61"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8102,
                                                                                                            "type": "uint256",
                                                                                                            "value": "i"
                                                                                                        },
                                                                                                        "id": 8114,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "922:1:61"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8115,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "916:8:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8116,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "902:23:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8117,
                                                                                "name": "MemberAccess",
                                                                                "src": "902:39:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8083,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8118,
                                                                                        "name": "Identifier",
                                                                                        "src": "959:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8102,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8119,
                                                                                        "name": "Identifier",
                                                                                        "src": "964:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8120,
                                                                                "name": "IndexAccess",
                                                                                "src": "959:7:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8083,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8121,
                                                                                        "name": "Identifier",
                                                                                        "src": "984:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "+",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8102,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 8122,
                                                                                                "name": "Identifier",
                                                                                                "src": "989:1:61"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "31",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1",
                                                                                                    "value": "1"
                                                                                                },
                                                                                                "id": 8123,
                                                                                                "name": "Literal",
                                                                                                "src": "993:1:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8124,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "989:5:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8125,
                                                                                "name": "IndexAccess",
                                                                                "src": "984:11:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8095,
                                                                                    "type": "uint256",
                                                                                    "value": "outputAmount"
                                                                                },
                                                                                "id": 8126,
                                                                                "name": "Identifier",
                                                                                "src": "1013:12:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "bytes calldata"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8089,
                                                                                            "type": "bytes calldata[] calldata",
                                                                                            "value": "extras"
                                                                                        },
                                                                                        "id": 8127,
                                                                                        "name": "Identifier",
                                                                                        "src": "1043:6:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8102,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8128,
                                                                                        "name": "Identifier",
                                                                                        "src": "1050:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8129,
                                                                                "name": "IndexAccess",
                                                                                "src": "1043:9:61"
                                                                            }
                                                                        ],
                                                                        "id": 8130,
                                                                        "name": "FunctionCall",
                                                                        "src": "902:164:61"
                                                                    }
                                                                ],
                                                                "id": 8131,
                                                                "name": "Assignment",
                                                                "src": "887:179:61"
                                                            }
                                                        ],
                                                        "id": 8132,
                                                        "name": "ExpressionStatement",
                                                        "src": "887:179:61"
                                                    }
                                                ],
                                                "id": 8133,
                                                "name": "Block",
                                                "src": "873:204:61"
                                            }
                                        ],
                                        "id": 8134,
                                        "name": "ForStatement",
                                        "src": "837:240:61"
                                    }
                                ],
                                "id": 8135,
                                "name": "Block",
                                "src": "791:292:61"
                            }
                        ],
                        "id": 8136,
                        "name": "FunctionDefinition",
                        "src": "582:501:61"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5366
                            ],
                            "documentation": null,
                            "functionSelector": "0862d12f",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "swapExactInputForOutput",
                            "scope": 8571,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8155,
                                "name": "OverrideSpecifier",
                                "src": "1342:8:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "path",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8137,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1131:7:61"
                                                    }
                                                ],
                                                "id": 8138,
                                                "name": "ArrayTypeName",
                                                "src": "1131:9:61"
                                            }
                                        ],
                                        "id": 8139,
                                        "name": "VariableDeclaration",
                                        "src": "1131:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "pairs",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8140,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1164:7:61"
                                                    }
                                                ],
                                                "id": 8141,
                                                "name": "ArrayTypeName",
                                                "src": "1164:9:61"
                                            }
                                        ],
                                        "id": 8142,
                                        "name": "VariableDeclaration",
                                        "src": "1164:24:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "extras",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 8143,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1198:5:61"
                                                    }
                                                ],
                                                "id": 8144,
                                                "name": "ArrayTypeName",
                                                "src": "1198:7:61"
                                            }
                                        ],
                                        "id": 8145,
                                        "name": "VariableDeclaration",
                                        "src": "1198:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8146,
                                                "name": "ElementaryTypeName",
                                                "src": "1231:7:61"
                                            }
                                        ],
                                        "id": 8147,
                                        "name": "VariableDeclaration",
                                        "src": "1231:19:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "minOutputAmount",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8148,
                                                "name": "ElementaryTypeName",
                                                "src": "1260:7:61"
                                            }
                                        ],
                                        "id": 8149,
                                        "name": "VariableDeclaration",
                                        "src": "1260:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "to",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8150,
                                                "name": "ElementaryTypeName",
                                                "src": "1293:7:61"
                                            }
                                        ],
                                        "id": 8151,
                                        "name": "VariableDeclaration",
                                        "src": "1293:10:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "deadline",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 8152,
                                                "name": "ElementaryTypeName",
                                                "src": "1313:4:61"
                                            }
                                        ],
                                        "id": 8153,
                                        "name": "VariableDeclaration",
                                        "src": "1313:13:61"
                                    }
                                ],
                                "id": 8154,
                                "name": "ParameterList",
                                "src": "1121:211:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "overrides": null,
                                            "scope": 8322,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8159,
                                                "name": "ElementaryTypeName",
                                                "src": "1377:7:61"
                                            }
                                        ],
                                        "id": 8160,
                                        "name": "VariableDeclaration",
                                        "src": "1377:20:61"
                                    }
                                ],
                                "id": 8161,
                                "name": "ParameterList",
                                "src": "1376:22:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 8080,
                                            "type": "modifier (uint256)",
                                            "value": "ensure"
                                        },
                                        "id": 8156,
                                        "name": "Identifier",
                                        "src": "1351:6:61"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 8153,
                                            "type": "uint256",
                                            "value": "deadline"
                                        },
                                        "id": 8157,
                                        "name": "Identifier",
                                        "src": "1358:8:61"
                                    }
                                ],
                                "id": 8158,
                                "name": "ModifierInvocation",
                                "src": "1351:16:61"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8162,
                                                        "name": "Identifier",
                                                        "src": "1409:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8139,
                                                                            "type": "address[] calldata",
                                                                            "value": "path"
                                                                        },
                                                                        "id": 8163,
                                                                        "name": "Identifier",
                                                                        "src": "1430:4:61"
                                                                    }
                                                                ],
                                                                "id": 8164,
                                                                "name": "MemberAccess",
                                                                "src": "1430:11:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "+",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8142,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "pairs"
                                                                                },
                                                                                "id": 8165,
                                                                                "name": "Identifier",
                                                                                "src": "1445:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8166,
                                                                        "name": "MemberAccess",
                                                                        "src": "1445:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "31",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 1",
                                                                            "value": "1"
                                                                        },
                                                                        "id": 8167,
                                                                        "name": "Literal",
                                                                        "src": "1460:1:61"
                                                                    }
                                                                ],
                                                                "id": 8168,
                                                                "name": "BinaryOperation",
                                                                "src": "1445:16:61"
                                                            }
                                                        ],
                                                        "id": 8169,
                                                        "name": "BinaryOperation",
                                                        "src": "1430:31:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a205061746820616e64205061697273206d69736d6174636821",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Path and Pairs mismatch!\"",
                                                            "value": "SwappaRouter: Path and Pairs mismatch!"
                                                        },
                                                        "id": 8170,
                                                        "name": "Literal",
                                                        "src": "1475:40:61"
                                                    }
                                                ],
                                                "id": 8171,
                                                "name": "FunctionCall",
                                                "src": "1409:116:61"
                                            }
                                        ],
                                        "id": 8172,
                                        "name": "ExpressionStatement",
                                        "src": "1409:116:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8173,
                                                        "name": "Identifier",
                                                        "src": "1535:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8142,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8174,
                                                                        "name": "Identifier",
                                                                        "src": "1556:5:61"
                                                                    }
                                                                ],
                                                                "id": 8175,
                                                                "name": "MemberAccess",
                                                                "src": "1556:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8145,
                                                                            "type": "bytes calldata[] calldata",
                                                                            "value": "extras"
                                                                        },
                                                                        "id": 8176,
                                                                        "name": "Identifier",
                                                                        "src": "1572:6:61"
                                                                    }
                                                                ],
                                                                "id": 8177,
                                                                "name": "MemberAccess",
                                                                "src": "1572:13:61"
                                                            }
                                                        ],
                                                        "id": 8178,
                                                        "name": "BinaryOperation",
                                                        "src": "1556:29:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20506169727320616e6420457874726173206d69736d6174636821",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\"",
                                                            "value": "SwappaRouter: Pairs and Extras mismatch!"
                                                        },
                                                        "id": 8179,
                                                        "name": "Literal",
                                                        "src": "1599:42:61"
                                                    }
                                                ],
                                                "id": 8180,
                                                "name": "FunctionCall",
                                                "src": "1535:116:61"
                                            }
                                        ],
                                        "id": 8181,
                                        "name": "ExpressionStatement",
                                        "src": "1535:116:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8182,
                                                        "name": "Identifier",
                                                        "src": "1661:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8142,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8183,
                                                                        "name": "Identifier",
                                                                        "src": "1669:5:61"
                                                                    }
                                                                ],
                                                                "id": 8184,
                                                                "name": "MemberAccess",
                                                                "src": "1669:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8185,
                                                                "name": "Literal",
                                                                "src": "1684:1:61"
                                                            }
                                                        ],
                                                        "id": 8186,
                                                        "name": "BinaryOperation",
                                                        "src": "1669:16:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a204d7573742068617665206174206c65617374206f6e65207061697221",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Must have at least one pair!\"",
                                                            "value": "SwappaRouter: Must have at least one pair!"
                                                        },
                                                        "id": 8187,
                                                        "name": "Literal",
                                                        "src": "1687:44:61"
                                                    }
                                                ],
                                                "id": 8188,
                                                "name": "FunctionCall",
                                                "src": "1661:71:61"
                                            }
                                        ],
                                        "id": 8189,
                                        "name": "ExpressionStatement",
                                        "src": "1661:71:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8190,
                                                        "name": "Identifier",
                                                        "src": "1743:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transferFrom",
                                                                    "referencedDeclaration": 423,
                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8191,
                                                                                "name": "Identifier",
                                                                                "src": "1764:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8139,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8192,
                                                                                        "name": "Identifier",
                                                                                        "src": "1770:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 8193,
                                                                                        "name": "Literal",
                                                                                        "src": "1775:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8194,
                                                                                "name": "IndexAccess",
                                                                                "src": "1770:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8195,
                                                                        "name": "FunctionCall",
                                                                        "src": "1764:14:61"
                                                                    }
                                                                ],
                                                                "id": 8196,
                                                                "name": "MemberAccess",
                                                                "src": "1764:27:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -15,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 8197,
                                                                        "name": "Identifier",
                                                                        "src": "1792:3:61"
                                                                    }
                                                                ],
                                                                "id": 8198,
                                                                "name": "MemberAccess",
                                                                "src": "1792:10:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8142,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8199,
                                                                        "name": "Identifier",
                                                                        "src": "1804:5:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8200,
                                                                        "name": "Literal",
                                                                        "src": "1810:1:61"
                                                                    }
                                                                ],
                                                                "id": 8201,
                                                                "name": "IndexAccess",
                                                                "src": "1804:8:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8147,
                                                                    "type": "uint256",
                                                                    "value": "inputAmount"
                                                                },
                                                                "id": 8202,
                                                                "name": "Identifier",
                                                                "src": "1814:11:61"
                                                            }
                                                        ],
                                                        "id": 8203,
                                                        "name": "FunctionCall",
                                                        "src": "1764:62:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20496e697469616c207472616e7366657246726f6d206661696c656421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Initial transferFrom failed!\"",
                                                            "value": "SwappaRouter: Initial transferFrom failed!"
                                                        },
                                                        "id": 8204,
                                                        "name": "Literal",
                                                        "src": "1840:44:61"
                                                    }
                                                ],
                                                "id": 8205,
                                                "name": "FunctionCall",
                                                "src": "1743:151:61"
                                            }
                                        ],
                                        "id": 8206,
                                        "name": "ExpressionStatement",
                                        "src": "1743:151:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        8208
                                                    ],
                                                    "initialValue": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "i",
                                                            "overrides": null,
                                                            "scope": 8269,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 8207,
                                                                "name": "ElementaryTypeName",
                                                                "src": "1909:4:61"
                                                            }
                                                        ],
                                                        "id": 8208,
                                                        "name": "VariableDeclaration",
                                                        "src": "1909:6:61"
                                                    }
                                                ],
                                                "id": 8209,
                                                "name": "VariableDeclarationStatement",
                                                "src": "1909:6:61"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8208,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8210,
                                                        "name": "Identifier",
                                                        "src": "1917:1:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8142,
                                                                    "type": "address[] calldata",
                                                                    "value": "pairs"
                                                                },
                                                                "id": 8211,
                                                                "name": "Identifier",
                                                                "src": "1921:5:61"
                                                            }
                                                        ],
                                                        "id": 8212,
                                                        "name": "MemberAccess",
                                                        "src": "1921:12:61"
                                                    }
                                                ],
                                                "id": 8213,
                                                "name": "BinaryOperation",
                                                "src": "1917:16:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8208,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8214,
                                                                "name": "Identifier",
                                                                "src": "1935:1:61"
                                                            }
                                                        ],
                                                        "id": 8215,
                                                        "name": "UnaryOperation",
                                                        "src": "1935:3:61"
                                                    }
                                                ],
                                                "id": 8216,
                                                "name": "ExpressionStatement",
                                                "src": "1935:3:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8218,
                                                                8220
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "pairInput",
                                                                    "overrides": null,
                                                                    "scope": 8268,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8217,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "1955:7:61"
                                                                    }
                                                                ],
                                                                "id": 8218,
                                                                "name": "VariableDeclaration",
                                                                "src": "1955:17:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "pairOutput",
                                                                    "overrides": null,
                                                                    "scope": 8268,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8219,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "1974:7:61"
                                                                    }
                                                                ],
                                                                "id": 8220,
                                                                "name": "VariableDeclaration",
                                                                "src": "1974:18:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isInlineArray": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "tuple(address,address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8139,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "path"
                                                                                },
                                                                                "id": 8221,
                                                                                "name": "Identifier",
                                                                                "src": "1997:4:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8208,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8222,
                                                                                "name": "Identifier",
                                                                                "src": "2002:1:61"
                                                                            }
                                                                        ],
                                                                        "id": 8223,
                                                                        "name": "IndexAccess",
                                                                        "src": "1997:7:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8139,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "path"
                                                                                },
                                                                                "id": 8224,
                                                                                "name": "Identifier",
                                                                                "src": "2006:4:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "+",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8208,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8225,
                                                                                        "name": "Identifier",
                                                                                        "src": "2011:1:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8226,
                                                                                        "name": "Literal",
                                                                                        "src": "2015:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8227,
                                                                                "name": "BinaryOperation",
                                                                                "src": "2011:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8228,
                                                                        "name": "IndexAccess",
                                                                        "src": "2006:11:61"
                                                                    }
                                                                ],
                                                                "id": 8229,
                                                                "name": "TupleExpression",
                                                                "src": "1996:22:61"
                                                            }
                                                        ],
                                                        "id": 8230,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "1954:64:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8232
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "next",
                                                                    "overrides": null,
                                                                    "scope": 8268,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8231,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "2032:7:61"
                                                                    }
                                                                ],
                                                                "id": 8232,
                                                                "name": "VariableDeclaration",
                                                                "src": "2032:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "<",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8208,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8233,
                                                                                "name": "Identifier",
                                                                                "src": "2047:1:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "-",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "referencedDeclaration": null,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8142,
                                                                                                    "type": "address[] calldata",
                                                                                                    "value": "pairs"
                                                                                                },
                                                                                                "id": 8234,
                                                                                                "name": "Identifier",
                                                                                                "src": "2051:5:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8235,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "2051:12:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8236,
                                                                                        "name": "Literal",
                                                                                        "src": "2066:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8237,
                                                                                "name": "BinaryOperation",
                                                                                "src": "2051:16:61"
                                                                            }
                                                                        ],
                                                                        "id": 8238,
                                                                        "name": "BinaryOperation",
                                                                        "src": "2047:20:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8142,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "pairs"
                                                                                },
                                                                                "id": 8239,
                                                                                "name": "Identifier",
                                                                                "src": "2070:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "+",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8208,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8240,
                                                                                        "name": "Identifier",
                                                                                        "src": "2076:1:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8241,
                                                                                        "name": "Literal",
                                                                                        "src": "2080:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8242,
                                                                                "name": "BinaryOperation",
                                                                                "src": "2076:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8243,
                                                                        "name": "IndexAccess",
                                                                        "src": "2070:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                                            "typeString": "contract SwappaRouterV1"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address",
                                                                                            "type": null
                                                                                        },
                                                                                        "id": 8244,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "2085:7:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8245,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "2085:7:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -28,
                                                                                    "type": "contract SwappaRouterV1",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 8246,
                                                                                "name": "Identifier",
                                                                                "src": "2093:4:61"
                                                                            }
                                                                        ],
                                                                        "id": 8247,
                                                                        "name": "FunctionCall",
                                                                        "src": "2085:13:61"
                                                                    }
                                                                ],
                                                                "id": 8248,
                                                                "name": "Conditional",
                                                                "src": "2047:51:61"
                                                            }
                                                        ],
                                                        "id": 8249,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "2032:66:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8251
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "data",
                                                                    "overrides": null,
                                                                    "scope": 8268,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "bytes",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "bytes",
                                                                            "type": "bytes"
                                                                        },
                                                                        "id": 8250,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "2112:5:61"
                                                                    }
                                                                ],
                                                                "id": 8251,
                                                                "name": "VariableDeclaration",
                                                                "src": "2112:17:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bytes calldata"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8145,
                                                                            "type": "bytes calldata[] calldata",
                                                                            "value": "extras"
                                                                        },
                                                                        "id": 8252,
                                                                        "name": "Identifier",
                                                                        "src": "2132:6:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8208,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8253,
                                                                        "name": "Identifier",
                                                                        "src": "2139:1:61"
                                                                    }
                                                                ],
                                                                "id": 8254,
                                                                "name": "IndexAccess",
                                                                "src": "2132:9:61"
                                                            }
                                                        ],
                                                        "id": 8255,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "2112:29:61"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                                    "typeString": "bytes memory"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "swap",
                                                                            "referencedDeclaration": 5311,
                                                                            "type": "function (address,address,address,bytes memory) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ISwappaPairV1",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5325,
                                                                                            "type": "type(contract ISwappaPairV1)",
                                                                                            "value": "ISwappaPairV1"
                                                                                        },
                                                                                        "id": 8256,
                                                                                        "name": "Identifier",
                                                                                        "src": "2155:13:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8142,
                                                                                                    "type": "address[] calldata",
                                                                                                    "value": "pairs"
                                                                                                },
                                                                                                "id": 8257,
                                                                                                "name": "Identifier",
                                                                                                "src": "2169:5:61"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8208,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 8258,
                                                                                                "name": "Identifier",
                                                                                                "src": "2175:1:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8259,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "2169:8:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8260,
                                                                                "name": "FunctionCall",
                                                                                "src": "2155:23:61"
                                                                            }
                                                                        ],
                                                                        "id": 8261,
                                                                        "name": "MemberAccess",
                                                                        "src": "2155:28:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8218,
                                                                            "type": "address",
                                                                            "value": "pairInput"
                                                                        },
                                                                        "id": 8262,
                                                                        "name": "Identifier",
                                                                        "src": "2184:9:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8220,
                                                                            "type": "address",
                                                                            "value": "pairOutput"
                                                                        },
                                                                        "id": 8263,
                                                                        "name": "Identifier",
                                                                        "src": "2195:10:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8232,
                                                                            "type": "address",
                                                                            "value": "next"
                                                                        },
                                                                        "id": 8264,
                                                                        "name": "Identifier",
                                                                        "src": "2207:4:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8251,
                                                                            "type": "bytes memory",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 8265,
                                                                        "name": "Identifier",
                                                                        "src": "2213:4:61"
                                                                    }
                                                                ],
                                                                "id": 8266,
                                                                "name": "FunctionCall",
                                                                "src": "2155:63:61"
                                                            }
                                                        ],
                                                        "id": 8267,
                                                        "name": "ExpressionStatement",
                                                        "src": "2155:63:61"
                                                    }
                                                ],
                                                "id": 8268,
                                                "name": "Block",
                                                "src": "1940:289:61"
                                            }
                                        ],
                                        "id": 8269,
                                        "name": "ForStatement",
                                        "src": "1904:325:61"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8271
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "output",
                                                    "overrides": null,
                                                    "scope": 8321,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8270,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2390:7:61"
                                                    }
                                                ],
                                                "id": 8271,
                                                "name": "VariableDeclaration",
                                                "src": "2390:14:61"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8139,
                                                            "type": "address[] calldata",
                                                            "value": "path"
                                                        },
                                                        "id": 8272,
                                                        "name": "Identifier",
                                                        "src": "2407:4:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "-",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8139,
                                                                            "type": "address[] calldata",
                                                                            "value": "path"
                                                                        },
                                                                        "id": 8273,
                                                                        "name": "Identifier",
                                                                        "src": "2412:4:61"
                                                                    }
                                                                ],
                                                                "id": 8274,
                                                                "name": "MemberAccess",
                                                                "src": "2412:11:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "31",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 1",
                                                                    "value": "1"
                                                                },
                                                                "id": 8275,
                                                                "name": "Literal",
                                                                "src": "2426:1:61"
                                                            }
                                                        ],
                                                        "id": 8276,
                                                        "name": "BinaryOperation",
                                                        "src": "2412:15:61"
                                                    }
                                                ],
                                                "id": 8277,
                                                "name": "IndexAccess",
                                                "src": "2407:21:61"
                                            }
                                        ],
                                        "id": 8278,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2390:38:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8160,
                                                            "type": "uint256",
                                                            "value": "outputAmount"
                                                        },
                                                        "id": 8279,
                                                        "name": "Identifier",
                                                        "src": "2438:12:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balanceOf",
                                                                    "referencedDeclaration": 325,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8280,
                                                                                "name": "Identifier",
                                                                                "src": "2453:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8271,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 8281,
                                                                                "name": "Identifier",
                                                                                "src": "2459:6:61"
                                                                            }
                                                                        ],
                                                                        "id": 8282,
                                                                        "name": "FunctionCall",
                                                                        "src": "2453:13:61"
                                                                    }
                                                                ],
                                                                "id": 8283,
                                                                "name": "MemberAccess",
                                                                "src": "2453:23:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address payable",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                                    "typeString": "contract SwappaRouterV1"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "type": null
                                                                                },
                                                                                "id": 8284,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "2477:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8285,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "2477:7:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -28,
                                                                            "type": "contract SwappaRouterV1",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 8286,
                                                                        "name": "Identifier",
                                                                        "src": "2485:4:61"
                                                                    }
                                                                ],
                                                                "id": 8287,
                                                                "name": "FunctionCall",
                                                                "src": "2477:13:61"
                                                            }
                                                        ],
                                                        "id": 8288,
                                                        "name": "FunctionCall",
                                                        "src": "2453:38:61"
                                                    }
                                                ],
                                                "id": 8289,
                                                "name": "Assignment",
                                                "src": "2438:53:61"
                                            }
                                        ],
                                        "id": 8290,
                                        "name": "ExpressionStatement",
                                        "src": "2438:53:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8291,
                                                        "name": "Identifier",
                                                        "src": "2501:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8160,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 8292,
                                                                "name": "Identifier",
                                                                "src": "2522:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8149,
                                                                    "type": "uint256",
                                                                    "value": "minOutputAmount"
                                                                },
                                                                "id": 8293,
                                                                "name": "Identifier",
                                                                "src": "2538:15:61"
                                                            }
                                                        ],
                                                        "id": 8294,
                                                        "name": "BinaryOperation",
                                                        "src": "2522:31:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20496e73756666696369656e74206f757470757420616d6f756e7421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Insufficient output amount!\"",
                                                            "value": "SwappaRouter: Insufficient output amount!"
                                                        },
                                                        "id": 8295,
                                                        "name": "Literal",
                                                        "src": "2567:43:61"
                                                    }
                                                ],
                                                "id": 8296,
                                                "name": "FunctionCall",
                                                "src": "2501:119:61"
                                            }
                                        ],
                                        "id": 8297,
                                        "name": "ExpressionStatement",
                                        "src": "2501:119:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8298,
                                                        "name": "Identifier",
                                                        "src": "2630:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 346,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8299,
                                                                                "name": "Identifier",
                                                                                "src": "2651:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8271,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 8300,
                                                                                "name": "Identifier",
                                                                                "src": "2657:6:61"
                                                                            }
                                                                        ],
                                                                        "id": 8301,
                                                                        "name": "FunctionCall",
                                                                        "src": "2651:13:61"
                                                                    }
                                                                ],
                                                                "id": 8302,
                                                                "name": "MemberAccess",
                                                                "src": "2651:22:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8151,
                                                                    "type": "address",
                                                                    "value": "to"
                                                                },
                                                                "id": 8303,
                                                                "name": "Identifier",
                                                                "src": "2674:2:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8160,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 8304,
                                                                "name": "Identifier",
                                                                "src": "2678:12:61"
                                                            }
                                                        ],
                                                        "id": 8305,
                                                        "name": "FunctionCall",
                                                        "src": "2651:40:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a2046696e616c207472616e73666572206661696c656421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Final transfer failed!\"",
                                                            "value": "SwappaRouter: Final transfer failed!"
                                                        },
                                                        "id": 8306,
                                                        "name": "Literal",
                                                        "src": "2705:38:61"
                                                    }
                                                ],
                                                "id": 8307,
                                                "name": "FunctionCall",
                                                "src": "2630:123:61"
                                            }
                                        ],
                                        "id": 8308,
                                        "name": "ExpressionStatement",
                                        "src": "2630:123:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8066,
                                                            "type": "function (address,address,address,address,uint256,uint256)",
                                                            "value": "Swap"
                                                        },
                                                        "id": 8309,
                                                        "name": "Identifier",
                                                        "src": "2768:4:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 8310,
                                                                "name": "Identifier",
                                                                "src": "2773:3:61"
                                                            }
                                                        ],
                                                        "id": 8311,
                                                        "name": "MemberAccess",
                                                        "src": "2773:10:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8151,
                                                            "type": "address",
                                                            "value": "to"
                                                        },
                                                        "id": 8312,
                                                        "name": "Identifier",
                                                        "src": "2785:2:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8139,
                                                                    "type": "address[] calldata",
                                                                    "value": "path"
                                                                },
                                                                "id": 8313,
                                                                "name": "Identifier",
                                                                "src": "2789:4:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8314,
                                                                "name": "Literal",
                                                                "src": "2794:1:61"
                                                            }
                                                        ],
                                                        "id": 8315,
                                                        "name": "IndexAccess",
                                                        "src": "2789:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8271,
                                                            "type": "address",
                                                            "value": "output"
                                                        },
                                                        "id": 8316,
                                                        "name": "Identifier",
                                                        "src": "2798:6:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8147,
                                                            "type": "uint256",
                                                            "value": "inputAmount"
                                                        },
                                                        "id": 8317,
                                                        "name": "Identifier",
                                                        "src": "2806:11:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8160,
                                                            "type": "uint256",
                                                            "value": "outputAmount"
                                                        },
                                                        "id": 8318,
                                                        "name": "Identifier",
                                                        "src": "2819:12:61"
                                                    }
                                                ],
                                                "id": 8319,
                                                "name": "FunctionCall",
                                                "src": "2768:64:61"
                                            }
                                        ],
                                        "id": 8320,
                                        "name": "EmitStatement",
                                        "src": "2763:69:61"
                                    }
                                ],
                                "id": 8321,
                                "name": "Block",
                                "src": "1399:1440:61"
                            }
                        ],
                        "id": 8322,
                        "name": "FunctionDefinition",
                        "src": "1089:1750:61"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5388
                            ],
                            "documentation": null,
                            "functionSelector": "adf6fa02",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "swapExactInputForOutputWithPrecheck",
                            "scope": 8571,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8341,
                                "name": "OverrideSpecifier",
                                "src": "3110:8:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "path",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8323,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2899:7:61"
                                                    }
                                                ],
                                                "id": 8324,
                                                "name": "ArrayTypeName",
                                                "src": "2899:9:61"
                                            }
                                        ],
                                        "id": 8325,
                                        "name": "VariableDeclaration",
                                        "src": "2899:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "pairs",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "address[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "address[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8326,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2932:7:61"
                                                    }
                                                ],
                                                "id": 8327,
                                                "name": "ArrayTypeName",
                                                "src": "2932:9:61"
                                            }
                                        ],
                                        "id": 8328,
                                        "name": "VariableDeclaration",
                                        "src": "2932:24:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "extras",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes[]",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "length": null,
                                                    "type": "bytes[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes",
                                                            "type": "bytes"
                                                        },
                                                        "id": 8329,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2966:5:61"
                                                    }
                                                ],
                                                "id": 8330,
                                                "name": "ArrayTypeName",
                                                "src": "2966:7:61"
                                            }
                                        ],
                                        "id": 8331,
                                        "name": "VariableDeclaration",
                                        "src": "2966:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8332,
                                                "name": "ElementaryTypeName",
                                                "src": "2999:7:61"
                                            }
                                        ],
                                        "id": 8333,
                                        "name": "VariableDeclaration",
                                        "src": "2999:19:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "minOutputAmount",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8334,
                                                "name": "ElementaryTypeName",
                                                "src": "3028:7:61"
                                            }
                                        ],
                                        "id": 8335,
                                        "name": "VariableDeclaration",
                                        "src": "3028:23:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "to",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8336,
                                                "name": "ElementaryTypeName",
                                                "src": "3061:7:61"
                                            }
                                        ],
                                        "id": 8337,
                                        "name": "VariableDeclaration",
                                        "src": "3061:10:61"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "deadline",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 8338,
                                                "name": "ElementaryTypeName",
                                                "src": "3081:4:61"
                                            }
                                        ],
                                        "id": 8339,
                                        "name": "VariableDeclaration",
                                        "src": "3081:13:61"
                                    }
                                ],
                                "id": 8340,
                                "name": "ParameterList",
                                "src": "2889:211:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "overrides": null,
                                            "scope": 8566,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8345,
                                                "name": "ElementaryTypeName",
                                                "src": "3145:7:61"
                                            }
                                        ],
                                        "id": 8346,
                                        "name": "VariableDeclaration",
                                        "src": "3145:20:61"
                                    }
                                ],
                                "id": 8347,
                                "name": "ParameterList",
                                "src": "3144:22:61"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 8080,
                                            "type": "modifier (uint256)",
                                            "value": "ensure"
                                        },
                                        "id": 8342,
                                        "name": "Identifier",
                                        "src": "3119:6:61"
                                    },
                                    {
                                        "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 8339,
                                            "type": "uint256",
                                            "value": "deadline"
                                        },
                                        "id": 8343,
                                        "name": "Identifier",
                                        "src": "3126:8:61"
                                    }
                                ],
                                "id": 8344,
                                "name": "ModifierInvocation",
                                "src": "3119:16:61"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_cbc4675579917e5fda45a353d444f0d37d533038808e91996b46a0da5ca80931",
                                                                    "typeString": "literal_string \"SwappaRouter: Path and Pairs mismatch!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8348,
                                                        "name": "Identifier",
                                                        "src": "3177:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8325,
                                                                            "type": "address[] calldata",
                                                                            "value": "path"
                                                                        },
                                                                        "id": 8349,
                                                                        "name": "Identifier",
                                                                        "src": "3198:4:61"
                                                                    }
                                                                ],
                                                                "id": 8350,
                                                                "name": "MemberAccess",
                                                                "src": "3198:11:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "+",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "referencedDeclaration": null,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8328,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "pairs"
                                                                                },
                                                                                "id": 8351,
                                                                                "name": "Identifier",
                                                                                "src": "3213:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8352,
                                                                        "name": "MemberAccess",
                                                                        "src": "3213:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "31",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 1",
                                                                            "value": "1"
                                                                        },
                                                                        "id": 8353,
                                                                        "name": "Literal",
                                                                        "src": "3228:1:61"
                                                                    }
                                                                ],
                                                                "id": 8354,
                                                                "name": "BinaryOperation",
                                                                "src": "3213:16:61"
                                                            }
                                                        ],
                                                        "id": 8355,
                                                        "name": "BinaryOperation",
                                                        "src": "3198:31:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a205061746820616e64205061697273206d69736d6174636821",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Path and Pairs mismatch!\"",
                                                            "value": "SwappaRouter: Path and Pairs mismatch!"
                                                        },
                                                        "id": 8356,
                                                        "name": "Literal",
                                                        "src": "3243:40:61"
                                                    }
                                                ],
                                                "id": 8357,
                                                "name": "FunctionCall",
                                                "src": "3177:116:61"
                                            }
                                        ],
                                        "id": 8358,
                                        "name": "ExpressionStatement",
                                        "src": "3177:116:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_aa79a2f1b8ccadf65acf1e8a1304938ec50b5c0614873c30a77bee5848d93d9a",
                                                                    "typeString": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8359,
                                                        "name": "Identifier",
                                                        "src": "3303:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8328,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8360,
                                                                        "name": "Identifier",
                                                                        "src": "3324:5:61"
                                                                    }
                                                                ],
                                                                "id": 8361,
                                                                "name": "MemberAccess",
                                                                "src": "3324:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8331,
                                                                            "type": "bytes calldata[] calldata",
                                                                            "value": "extras"
                                                                        },
                                                                        "id": 8362,
                                                                        "name": "Identifier",
                                                                        "src": "3340:6:61"
                                                                    }
                                                                ],
                                                                "id": 8363,
                                                                "name": "MemberAccess",
                                                                "src": "3340:13:61"
                                                            }
                                                        ],
                                                        "id": 8364,
                                                        "name": "BinaryOperation",
                                                        "src": "3324:29:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20506169727320616e6420457874726173206d69736d6174636821",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Pairs and Extras mismatch!\"",
                                                            "value": "SwappaRouter: Pairs and Extras mismatch!"
                                                        },
                                                        "id": 8365,
                                                        "name": "Literal",
                                                        "src": "3367:42:61"
                                                    }
                                                ],
                                                "id": 8366,
                                                "name": "FunctionCall",
                                                "src": "3303:116:61"
                                            }
                                        ],
                                        "id": 8367,
                                        "name": "ExpressionStatement",
                                        "src": "3303:116:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_50f8820bfeecb849a00cbe9e7b54a6b373cb7c22aa55809a32600c36edb64fa6",
                                                                    "typeString": "literal_string \"SwappaRouter: Must have at least one pair!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8368,
                                                        "name": "Identifier",
                                                        "src": "3429:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8328,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8369,
                                                                        "name": "Identifier",
                                                                        "src": "3437:5:61"
                                                                    }
                                                                ],
                                                                "id": 8370,
                                                                "name": "MemberAccess",
                                                                "src": "3437:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8371,
                                                                "name": "Literal",
                                                                "src": "3452:1:61"
                                                            }
                                                        ],
                                                        "id": 8372,
                                                        "name": "BinaryOperation",
                                                        "src": "3437:16:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a204d7573742068617665206174206c65617374206f6e65207061697221",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Must have at least one pair!\"",
                                                            "value": "SwappaRouter: Must have at least one pair!"
                                                        },
                                                        "id": 8373,
                                                        "name": "Literal",
                                                        "src": "3455:44:61"
                                                    }
                                                ],
                                                "id": 8374,
                                                "name": "FunctionCall",
                                                "src": "3429:71:61"
                                            }
                                        ],
                                        "id": 8375,
                                        "name": "ExpressionStatement",
                                        "src": "3429:71:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "=",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8346,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 8376,
                                                                "name": "Identifier",
                                                                "src": "3801:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8333,
                                                                    "type": "uint256",
                                                                    "value": "inputAmount"
                                                                },
                                                                "id": 8377,
                                                                "name": "Identifier",
                                                                "src": "3816:11:61"
                                                            }
                                                        ],
                                                        "id": 8378,
                                                        "name": "Assignment",
                                                        "src": "3801:26:61"
                                                    }
                                                ],
                                                "id": 8379,
                                                "name": "ExpressionStatement",
                                                "src": "3801:26:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8381
                                                            ],
                                                            "initialValue": null
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "i",
                                                                    "overrides": null,
                                                                    "scope": 8425,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 8380,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "3911:4:61"
                                                                    }
                                                                ],
                                                                "id": 8381,
                                                                "name": "VariableDeclaration",
                                                                "src": "3911:6:61"
                                                            }
                                                        ],
                                                        "id": 8382,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "3911:6:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "<",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8381,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8383,
                                                                "name": "Identifier",
                                                                "src": "3919:1:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8328,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8384,
                                                                        "name": "Identifier",
                                                                        "src": "3923:5:61"
                                                                    }
                                                                ],
                                                                "id": 8385,
                                                                "name": "MemberAccess",
                                                                "src": "3923:12:61"
                                                            }
                                                        ],
                                                        "id": 8386,
                                                        "name": "BinaryOperation",
                                                        "src": "3919:16:61"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "++",
                                                                    "prefix": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8381,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8387,
                                                                        "name": "Identifier",
                                                                        "src": "3937:1:61"
                                                                    }
                                                                ],
                                                                "id": 8388,
                                                                "name": "UnaryOperation",
                                                                "src": "3937:3:61"
                                                            }
                                                        ],
                                                        "id": 8389,
                                                        "name": "ExpressionStatement",
                                                        "src": "3937:3:61"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        8391,
                                                                        8393
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "mutability": "mutable",
                                                                            "name": "input",
                                                                            "overrides": null,
                                                                            "scope": 8424,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "address",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "type": "address"
                                                                                },
                                                                                "id": 8390,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "3961:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8391,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "3961:13:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "mutability": "mutable",
                                                                            "name": "output",
                                                                            "overrides": null,
                                                                            "scope": 8424,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "address",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "stateMutability": "nonpayable",
                                                                                    "type": "address"
                                                                                },
                                                                                "id": 8392,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "3976:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8393,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "3976:14:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isInlineArray": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "tuple(address,address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8325,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8394,
                                                                                        "name": "Identifier",
                                                                                        "src": "3995:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8381,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8395,
                                                                                        "name": "Identifier",
                                                                                        "src": "4000:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8396,
                                                                                "name": "IndexAccess",
                                                                                "src": "3995:7:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8325,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8397,
                                                                                        "name": "Identifier",
                                                                                        "src": "4004:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "+",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8381,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 8398,
                                                                                                "name": "Identifier",
                                                                                                "src": "4009:1:61"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "hexvalue": "31",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "subdenomination": null,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1",
                                                                                                    "value": "1"
                                                                                                },
                                                                                                "id": 8399,
                                                                                                "name": "Literal",
                                                                                                "src": "4013:1:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8400,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "4009:5:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8401,
                                                                                "name": "IndexAccess",
                                                                                "src": "4004:11:61"
                                                                            }
                                                                        ],
                                                                        "id": 8402,
                                                                        "name": "TupleExpression",
                                                                        "src": "3994:22:61"
                                                                    }
                                                                ],
                                                                "id": 8403,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "3960:56:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        8405
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "mutability": "mutable",
                                                                            "name": "data",
                                                                            "overrides": null,
                                                                            "scope": 8424,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "memory",
                                                                            "type": "bytes",
                                                                            "value": null,
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "bytes",
                                                                                    "type": "bytes"
                                                                                },
                                                                                "id": 8404,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "4034:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8405,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "4034:17:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "bytes calldata"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8331,
                                                                                    "type": "bytes calldata[] calldata",
                                                                                    "value": "extras"
                                                                                },
                                                                                "id": 8406,
                                                                                "name": "Identifier",
                                                                                "src": "4054:6:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8381,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8407,
                                                                                "name": "Identifier",
                                                                                "src": "4061:1:61"
                                                                            }
                                                                        ],
                                                                        "id": 8408,
                                                                        "name": "IndexAccess",
                                                                        "src": "4054:9:61"
                                                                    }
                                                                ],
                                                                "id": 8409,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "4034:29:61"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8346,
                                                                                    "type": "uint256",
                                                                                    "value": "outputAmount"
                                                                                },
                                                                                "id": 8410,
                                                                                "name": "Identifier",
                                                                                "src": "4081:12:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                                                    "typeString": "bytes memory"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "getOutputAmount",
                                                                                            "referencedDeclaration": 5324,
                                                                                            "type": "function (address,address,uint256,bytes memory) external returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract ISwappaPairV1",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 5325,
                                                                                                            "type": "type(contract ISwappaPairV1)",
                                                                                                            "value": "ISwappaPairV1"
                                                                                                        },
                                                                                                        "id": 8411,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "4096:13:61"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": null,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8328,
                                                                                                                    "type": "address[] calldata",
                                                                                                                    "value": "pairs"
                                                                                                                },
                                                                                                                "id": 8412,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "4110:5:61"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": null,
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8381,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "i"
                                                                                                                },
                                                                                                                "id": 8413,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "4116:1:61"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8414,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "4110:8:61"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8415,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "4096:23:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8416,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4096:39:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8391,
                                                                                            "type": "address",
                                                                                            "value": "input"
                                                                                        },
                                                                                        "id": 8417,
                                                                                        "name": "Identifier",
                                                                                        "src": "4157:5:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8393,
                                                                                            "type": "address",
                                                                                            "value": "output"
                                                                                        },
                                                                                        "id": 8418,
                                                                                        "name": "Identifier",
                                                                                        "src": "4184:6:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8346,
                                                                                            "type": "uint256",
                                                                                            "value": "outputAmount"
                                                                                        },
                                                                                        "id": 8419,
                                                                                        "name": "Identifier",
                                                                                        "src": "4212:12:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8405,
                                                                                            "type": "bytes memory",
                                                                                            "value": "data"
                                                                                        },
                                                                                        "id": 8420,
                                                                                        "name": "Identifier",
                                                                                        "src": "4246:4:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8421,
                                                                                "name": "FunctionCall",
                                                                                "src": "4096:172:61"
                                                                            }
                                                                        ],
                                                                        "id": 8422,
                                                                        "name": "Assignment",
                                                                        "src": "4081:187:61"
                                                                    }
                                                                ],
                                                                "id": 8423,
                                                                "name": "ExpressionStatement",
                                                                "src": "4081:187:61"
                                                            }
                                                        ],
                                                        "id": 8424,
                                                        "name": "Block",
                                                        "src": "3942:341:61"
                                                    }
                                                ],
                                                "id": 8425,
                                                "name": "ForStatement",
                                                "src": "3906:377:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "tuple()",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bool",
                                                                            "typeString": "bool"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_92c647a9df827f435e95e55348ef3d9783657104085606ff16cb5738ddbeffe7",
                                                                            "typeString": "literal_string \"SwappaRouter: Insufficient expected output amount!\""
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        -18,
                                                                        -18
                                                                    ],
                                                                    "referencedDeclaration": -18,
                                                                    "type": "function (bool,string memory) pure",
                                                                    "value": "require"
                                                                },
                                                                "id": 8426,
                                                                "name": "Identifier",
                                                                "src": "4296:7:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8346,
                                                                            "type": "uint256",
                                                                            "value": "outputAmount"
                                                                        },
                                                                        "id": 8427,
                                                                        "name": "Identifier",
                                                                        "src": "4321:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8335,
                                                                            "type": "uint256",
                                                                            "value": "minOutputAmount"
                                                                        },
                                                                        "id": 8428,
                                                                        "name": "Identifier",
                                                                        "src": "4337:15:61"
                                                                    }
                                                                ],
                                                                "id": 8429,
                                                                "name": "BinaryOperation",
                                                                "src": "4321:31:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "537761707061526f757465723a20496e73756666696369656e74206578706563746564206f757470757420616d6f756e7421",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "string",
                                                                    "type": "literal_string \"SwappaRouter: Insufficient expected output amount!\"",
                                                                    "value": "SwappaRouter: Insufficient expected output amount!"
                                                                },
                                                                "id": 8430,
                                                                "name": "Literal",
                                                                "src": "4370:52:61"
                                                            }
                                                        ],
                                                        "id": 8431,
                                                        "name": "FunctionCall",
                                                        "src": "4296:140:61"
                                                    }
                                                ],
                                                "id": 8432,
                                                "name": "ExpressionStatement",
                                                "src": "4296:140:61"
                                            }
                                        ],
                                        "id": 8433,
                                        "name": "Block",
                                        "src": "3787:660:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5d4db394429342c290de88dc1012d1383b0e08cbeb120c2513f7aad8def9fc3d",
                                                                    "typeString": "literal_string \"SwappaRouter: Initial transferFrom failed!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8434,
                                                        "name": "Identifier",
                                                        "src": "4457:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transferFrom",
                                                                    "referencedDeclaration": 423,
                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8435,
                                                                                "name": "Identifier",
                                                                                "src": "4478:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8325,
                                                                                            "type": "address[] calldata",
                                                                                            "value": "path"
                                                                                        },
                                                                                        "id": 8436,
                                                                                        "name": "Identifier",
                                                                                        "src": "4484:4:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 8437,
                                                                                        "name": "Literal",
                                                                                        "src": "4489:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8438,
                                                                                "name": "IndexAccess",
                                                                                "src": "4484:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8439,
                                                                        "name": "FunctionCall",
                                                                        "src": "4478:14:61"
                                                                    }
                                                                ],
                                                                "id": 8440,
                                                                "name": "MemberAccess",
                                                                "src": "4478:27:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "referencedDeclaration": null,
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -15,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 8441,
                                                                        "name": "Identifier",
                                                                        "src": "4506:3:61"
                                                                    }
                                                                ],
                                                                "id": 8442,
                                                                "name": "MemberAccess",
                                                                "src": "4506:10:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8328,
                                                                            "type": "address[] calldata",
                                                                            "value": "pairs"
                                                                        },
                                                                        "id": 8443,
                                                                        "name": "Identifier",
                                                                        "src": "4518:5:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8444,
                                                                        "name": "Literal",
                                                                        "src": "4524:1:61"
                                                                    }
                                                                ],
                                                                "id": 8445,
                                                                "name": "IndexAccess",
                                                                "src": "4518:8:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8333,
                                                                    "type": "uint256",
                                                                    "value": "inputAmount"
                                                                },
                                                                "id": 8446,
                                                                "name": "Identifier",
                                                                "src": "4528:11:61"
                                                            }
                                                        ],
                                                        "id": 8447,
                                                        "name": "FunctionCall",
                                                        "src": "4478:62:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20496e697469616c207472616e7366657246726f6d206661696c656421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Initial transferFrom failed!\"",
                                                            "value": "SwappaRouter: Initial transferFrom failed!"
                                                        },
                                                        "id": 8448,
                                                        "name": "Literal",
                                                        "src": "4554:44:61"
                                                    }
                                                ],
                                                "id": 8449,
                                                "name": "FunctionCall",
                                                "src": "4457:151:61"
                                            }
                                        ],
                                        "id": 8450,
                                        "name": "ExpressionStatement",
                                        "src": "4457:151:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        8452
                                                    ],
                                                    "initialValue": null
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "i",
                                                            "overrides": null,
                                                            "scope": 8513,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "value": null,
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 8451,
                                                                "name": "ElementaryTypeName",
                                                                "src": "4623:4:61"
                                                            }
                                                        ],
                                                        "id": 8452,
                                                        "name": "VariableDeclaration",
                                                        "src": "4623:6:61"
                                                    }
                                                ],
                                                "id": 8453,
                                                "name": "VariableDeclarationStatement",
                                                "src": "4623:6:61"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8452,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8454,
                                                        "name": "Identifier",
                                                        "src": "4631:1:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "referencedDeclaration": null,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8328,
                                                                    "type": "address[] calldata",
                                                                    "value": "pairs"
                                                                },
                                                                "id": 8455,
                                                                "name": "Identifier",
                                                                "src": "4635:5:61"
                                                            }
                                                        ],
                                                        "id": 8456,
                                                        "name": "MemberAccess",
                                                        "src": "4635:12:61"
                                                    }
                                                ],
                                                "id": 8457,
                                                "name": "BinaryOperation",
                                                "src": "4631:16:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8452,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8458,
                                                                "name": "Identifier",
                                                                "src": "4649:1:61"
                                                            }
                                                        ],
                                                        "id": 8459,
                                                        "name": "UnaryOperation",
                                                        "src": "4649:3:61"
                                                    }
                                                ],
                                                "id": 8460,
                                                "name": "ExpressionStatement",
                                                "src": "4649:3:61"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8462,
                                                                8464
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "pairInput",
                                                                    "overrides": null,
                                                                    "scope": 8512,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8461,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4669:7:61"
                                                                    }
                                                                ],
                                                                "id": 8462,
                                                                "name": "VariableDeclaration",
                                                                "src": "4669:17:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "pairOutput",
                                                                    "overrides": null,
                                                                    "scope": 8512,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8463,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4688:7:61"
                                                                    }
                                                                ],
                                                                "id": 8464,
                                                                "name": "VariableDeclaration",
                                                                "src": "4688:18:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isInlineArray": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "tuple(address,address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8325,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "path"
                                                                                },
                                                                                "id": 8465,
                                                                                "name": "Identifier",
                                                                                "src": "4711:4:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8452,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8466,
                                                                                "name": "Identifier",
                                                                                "src": "4716:1:61"
                                                                            }
                                                                        ],
                                                                        "id": 8467,
                                                                        "name": "IndexAccess",
                                                                        "src": "4711:7:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8325,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "path"
                                                                                },
                                                                                "id": 8468,
                                                                                "name": "Identifier",
                                                                                "src": "4720:4:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "+",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8452,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8469,
                                                                                        "name": "Identifier",
                                                                                        "src": "4725:1:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8470,
                                                                                        "name": "Literal",
                                                                                        "src": "4729:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8471,
                                                                                "name": "BinaryOperation",
                                                                                "src": "4725:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8472,
                                                                        "name": "IndexAccess",
                                                                        "src": "4720:11:61"
                                                                    }
                                                                ],
                                                                "id": 8473,
                                                                "name": "TupleExpression",
                                                                "src": "4710:22:61"
                                                            }
                                                        ],
                                                        "id": 8474,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "4668:64:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8476
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "next",
                                                                    "overrides": null,
                                                                    "scope": 8512,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 8475,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4746:7:61"
                                                                    }
                                                                ],
                                                                "id": 8476,
                                                                "name": "VariableDeclaration",
                                                                "src": "4746:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "<",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8452,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8477,
                                                                                "name": "Identifier",
                                                                                "src": "4761:1:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "-",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "referencedDeclaration": null,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8328,
                                                                                                    "type": "address[] calldata",
                                                                                                    "value": "pairs"
                                                                                                },
                                                                                                "id": 8478,
                                                                                                "name": "Identifier",
                                                                                                "src": "4765:5:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8479,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "4765:12:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8480,
                                                                                        "name": "Literal",
                                                                                        "src": "4780:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8481,
                                                                                "name": "BinaryOperation",
                                                                                "src": "4765:16:61"
                                                                            }
                                                                        ],
                                                                        "id": 8482,
                                                                        "name": "BinaryOperation",
                                                                        "src": "4761:20:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8328,
                                                                                    "type": "address[] calldata",
                                                                                    "value": "pairs"
                                                                                },
                                                                                "id": 8483,
                                                                                "name": "Identifier",
                                                                                "src": "4784:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "+",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8452,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8484,
                                                                                        "name": "Identifier",
                                                                                        "src": "4790:1:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "hexvalue": "31",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "subdenomination": null,
                                                                                            "token": "number",
                                                                                            "type": "int_const 1",
                                                                                            "value": "1"
                                                                                        },
                                                                                        "id": 8485,
                                                                                        "name": "Literal",
                                                                                        "src": "4794:1:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8486,
                                                                                "name": "BinaryOperation",
                                                                                "src": "4790:5:61"
                                                                            }
                                                                        ],
                                                                        "id": 8487,
                                                                        "name": "IndexAccess",
                                                                        "src": "4784:12:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                                            "typeString": "contract SwappaRouterV1"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address",
                                                                                            "type": null
                                                                                        },
                                                                                        "id": 8488,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "4799:7:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8489,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "4799:7:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -28,
                                                                                    "type": "contract SwappaRouterV1",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 8490,
                                                                                "name": "Identifier",
                                                                                "src": "4807:4:61"
                                                                            }
                                                                        ],
                                                                        "id": 8491,
                                                                        "name": "FunctionCall",
                                                                        "src": "4799:13:61"
                                                                    }
                                                                ],
                                                                "id": 8492,
                                                                "name": "Conditional",
                                                                "src": "4761:51:61"
                                                            }
                                                        ],
                                                        "id": 8493,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "4746:66:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8495
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "data",
                                                                    "overrides": null,
                                                                    "scope": 8512,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "bytes",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "bytes",
                                                                            "type": "bytes"
                                                                        },
                                                                        "id": 8494,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "4826:5:61"
                                                                    }
                                                                ],
                                                                "id": 8495,
                                                                "name": "VariableDeclaration",
                                                                "src": "4826:17:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bytes calldata"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8331,
                                                                            "type": "bytes calldata[] calldata",
                                                                            "value": "extras"
                                                                        },
                                                                        "id": 8496,
                                                                        "name": "Identifier",
                                                                        "src": "4846:6:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8452,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8497,
                                                                        "name": "Identifier",
                                                                        "src": "4853:1:61"
                                                                    }
                                                                ],
                                                                "id": 8498,
                                                                "name": "IndexAccess",
                                                                "src": "4846:9:61"
                                                            }
                                                        ],
                                                        "id": 8499,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "4826:29:61"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                                    "typeString": "bytes memory"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "swap",
                                                                            "referencedDeclaration": 5311,
                                                                            "type": "function (address,address,address,bytes memory) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ISwappaPairV1",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 5325,
                                                                                            "type": "type(contract ISwappaPairV1)",
                                                                                            "value": "ISwappaPairV1"
                                                                                        },
                                                                                        "id": 8500,
                                                                                        "name": "Identifier",
                                                                                        "src": "4869:13:61"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8328,
                                                                                                    "type": "address[] calldata",
                                                                                                    "value": "pairs"
                                                                                                },
                                                                                                "id": 8501,
                                                                                                "name": "Identifier",
                                                                                                "src": "4883:5:61"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8452,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 8502,
                                                                                                "name": "Identifier",
                                                                                                "src": "4889:1:61"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8503,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "4883:8:61"
                                                                                    }
                                                                                ],
                                                                                "id": 8504,
                                                                                "name": "FunctionCall",
                                                                                "src": "4869:23:61"
                                                                            }
                                                                        ],
                                                                        "id": 8505,
                                                                        "name": "MemberAccess",
                                                                        "src": "4869:28:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8462,
                                                                            "type": "address",
                                                                            "value": "pairInput"
                                                                        },
                                                                        "id": 8506,
                                                                        "name": "Identifier",
                                                                        "src": "4898:9:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8464,
                                                                            "type": "address",
                                                                            "value": "pairOutput"
                                                                        },
                                                                        "id": 8507,
                                                                        "name": "Identifier",
                                                                        "src": "4909:10:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8476,
                                                                            "type": "address",
                                                                            "value": "next"
                                                                        },
                                                                        "id": 8508,
                                                                        "name": "Identifier",
                                                                        "src": "4921:4:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8495,
                                                                            "type": "bytes memory",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 8509,
                                                                        "name": "Identifier",
                                                                        "src": "4927:4:61"
                                                                    }
                                                                ],
                                                                "id": 8510,
                                                                "name": "FunctionCall",
                                                                "src": "4869:63:61"
                                                            }
                                                        ],
                                                        "id": 8511,
                                                        "name": "ExpressionStatement",
                                                        "src": "4869:63:61"
                                                    }
                                                ],
                                                "id": 8512,
                                                "name": "Block",
                                                "src": "4654:289:61"
                                            }
                                        ],
                                        "id": 8513,
                                        "name": "ForStatement",
                                        "src": "4618:325:61"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8515
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "output",
                                                    "overrides": null,
                                                    "scope": 8565,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8514,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5104:7:61"
                                                    }
                                                ],
                                                "id": 8515,
                                                "name": "VariableDeclaration",
                                                "src": "5104:14:61"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8325,
                                                            "type": "address[] calldata",
                                                            "value": "path"
                                                        },
                                                        "id": 8516,
                                                        "name": "Identifier",
                                                        "src": "5121:4:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "-",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8325,
                                                                            "type": "address[] calldata",
                                                                            "value": "path"
                                                                        },
                                                                        "id": 8517,
                                                                        "name": "Identifier",
                                                                        "src": "5126:4:61"
                                                                    }
                                                                ],
                                                                "id": 8518,
                                                                "name": "MemberAccess",
                                                                "src": "5126:11:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "31",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 1",
                                                                    "value": "1"
                                                                },
                                                                "id": 8519,
                                                                "name": "Literal",
                                                                "src": "5140:1:61"
                                                            }
                                                        ],
                                                        "id": 8520,
                                                        "name": "BinaryOperation",
                                                        "src": "5126:15:61"
                                                    }
                                                ],
                                                "id": 8521,
                                                "name": "IndexAccess",
                                                "src": "5121:21:61"
                                            }
                                        ],
                                        "id": 8522,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5104:38:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8346,
                                                            "type": "uint256",
                                                            "value": "outputAmount"
                                                        },
                                                        "id": 8523,
                                                        "name": "Identifier",
                                                        "src": "5152:12:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balanceOf",
                                                                    "referencedDeclaration": 325,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8524,
                                                                                "name": "Identifier",
                                                                                "src": "5167:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8515,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 8525,
                                                                                "name": "Identifier",
                                                                                "src": "5173:6:61"
                                                                            }
                                                                        ],
                                                                        "id": 8526,
                                                                        "name": "FunctionCall",
                                                                        "src": "5167:13:61"
                                                                    }
                                                                ],
                                                                "id": 8527,
                                                                "name": "MemberAccess",
                                                                "src": "5167:23:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address payable",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_SwappaRouterV1_$8571",
                                                                                    "typeString": "contract SwappaRouterV1"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address",
                                                                                    "type": null
                                                                                },
                                                                                "id": 8528,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "5191:7:61"
                                                                            }
                                                                        ],
                                                                        "id": 8529,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "5191:7:61"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -28,
                                                                            "type": "contract SwappaRouterV1",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 8530,
                                                                        "name": "Identifier",
                                                                        "src": "5199:4:61"
                                                                    }
                                                                ],
                                                                "id": 8531,
                                                                "name": "FunctionCall",
                                                                "src": "5191:13:61"
                                                            }
                                                        ],
                                                        "id": 8532,
                                                        "name": "FunctionCall",
                                                        "src": "5167:38:61"
                                                    }
                                                ],
                                                "id": 8533,
                                                "name": "Assignment",
                                                "src": "5152:53:61"
                                            }
                                        ],
                                        "id": 8534,
                                        "name": "ExpressionStatement",
                                        "src": "5152:53:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_cefd04d9f158c54476d457b22a80719a9743d5a6e0418466da4fa21996dd4acf",
                                                                    "typeString": "literal_string \"SwappaRouter: Insufficient output amount!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8535,
                                                        "name": "Identifier",
                                                        "src": "5215:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8346,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 8536,
                                                                "name": "Identifier",
                                                                "src": "5236:12:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8335,
                                                                    "type": "uint256",
                                                                    "value": "minOutputAmount"
                                                                },
                                                                "id": 8537,
                                                                "name": "Identifier",
                                                                "src": "5252:15:61"
                                                            }
                                                        ],
                                                        "id": 8538,
                                                        "name": "BinaryOperation",
                                                        "src": "5236:31:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a20496e73756666696369656e74206f757470757420616d6f756e7421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Insufficient output amount!\"",
                                                            "value": "SwappaRouter: Insufficient output amount!"
                                                        },
                                                        "id": 8539,
                                                        "name": "Literal",
                                                        "src": "5281:43:61"
                                                    }
                                                ],
                                                "id": 8540,
                                                "name": "FunctionCall",
                                                "src": "5215:119:61"
                                            }
                                        ],
                                        "id": 8541,
                                        "name": "ExpressionStatement",
                                        "src": "5215:119:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9adfc36c8bf82468d0028ce6cfdb8f1360397ed2f3915c2f2b40899f5aface4f",
                                                                    "typeString": "literal_string \"SwappaRouter: Final transfer failed!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8542,
                                                        "name": "Identifier",
                                                        "src": "5344:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 346,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 8543,
                                                                                "name": "Identifier",
                                                                                "src": "5365:5:61"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8515,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 8544,
                                                                                "name": "Identifier",
                                                                                "src": "5371:6:61"
                                                                            }
                                                                        ],
                                                                        "id": 8545,
                                                                        "name": "FunctionCall",
                                                                        "src": "5365:13:61"
                                                                    }
                                                                ],
                                                                "id": 8546,
                                                                "name": "MemberAccess",
                                                                "src": "5365:22:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8337,
                                                                    "type": "address",
                                                                    "value": "to"
                                                                },
                                                                "id": 8547,
                                                                "name": "Identifier",
                                                                "src": "5388:2:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8346,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 8548,
                                                                "name": "Identifier",
                                                                "src": "5392:12:61"
                                                            }
                                                        ],
                                                        "id": 8549,
                                                        "name": "FunctionCall",
                                                        "src": "5365:40:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "537761707061526f757465723a2046696e616c207472616e73666572206661696c656421",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"SwappaRouter: Final transfer failed!\"",
                                                            "value": "SwappaRouter: Final transfer failed!"
                                                        },
                                                        "id": 8550,
                                                        "name": "Literal",
                                                        "src": "5419:38:61"
                                                    }
                                                ],
                                                "id": 8551,
                                                "name": "FunctionCall",
                                                "src": "5344:123:61"
                                            }
                                        ],
                                        "id": 8552,
                                        "name": "ExpressionStatement",
                                        "src": "5344:123:61"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8066,
                                                            "type": "function (address,address,address,address,uint256,uint256)",
                                                            "value": "Swap"
                                                        },
                                                        "id": 8553,
                                                        "name": "Identifier",
                                                        "src": "5482:4:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "referencedDeclaration": null,
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 8554,
                                                                "name": "Identifier",
                                                                "src": "5487:3:61"
                                                            }
                                                        ],
                                                        "id": 8555,
                                                        "name": "MemberAccess",
                                                        "src": "5487:10:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8337,
                                                            "type": "address",
                                                            "value": "to"
                                                        },
                                                        "id": 8556,
                                                        "name": "Identifier",
                                                        "src": "5499:2:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8325,
                                                                    "type": "address[] calldata",
                                                                    "value": "path"
                                                                },
                                                                "id": 8557,
                                                                "name": "Identifier",
                                                                "src": "5503:4:61"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8558,
                                                                "name": "Literal",
                                                                "src": "5508:1:61"
                                                            }
                                                        ],
                                                        "id": 8559,
                                                        "name": "IndexAccess",
                                                        "src": "5503:7:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8515,
                                                            "type": "address",
                                                            "value": "output"
                                                        },
                                                        "id": 8560,
                                                        "name": "Identifier",
                                                        "src": "5512:6:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8333,
                                                            "type": "uint256",
                                                            "value": "inputAmount"
                                                        },
                                                        "id": 8561,
                                                        "name": "Identifier",
                                                        "src": "5520:11:61"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8346,
                                                            "type": "uint256",
                                                            "value": "outputAmount"
                                                        },
                                                        "id": 8562,
                                                        "name": "Identifier",
                                                        "src": "5533:12:61"
                                                    }
                                                ],
                                                "id": 8563,
                                                "name": "FunctionCall",
                                                "src": "5482:64:61"
                                            }
                                        ],
                                        "id": 8564,
                                        "name": "EmitStatement",
                                        "src": "5477:69:61"
                                    }
                                ],
                                "id": 8565,
                                "name": "Block",
                                "src": "3167:2386:61"
                            }
                        ],
                        "id": 8566,
                        "name": "FunctionDefinition",
                        "src": "2845:2708:61"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "receive",
                            "modifiers": [
                                null
                            ],
                            "name": "",
                            "overrides": null,
                            "scope": 8571,
                            "stateMutability": "payable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8567,
                                "name": "ParameterList",
                                "src": "5566:2:61"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8568,
                                "name": "ParameterList",
                                "src": "5586:0:61"
                            },
                            {
                                "attributes": {
                                    "statements": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8569,
                                "name": "Block",
                                "src": "5586:2:61"
                            }
                        ],
                        "id": 8570,
                        "name": "FunctionDefinition",
                        "src": "5559:29:61"
                    }
                ],
                "id": 8571,
                "name": "ContractDefinition",
                "src": "209:5381:61"
            }
        ],
        "id": 8572,
        "name": "SourceUnit",
        "src": "32:5559:61"
    },
    "compiler": {
        "name": "solc",
        "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
    },
    "networks": {},
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-02-07T17:50:42.857Z",
    "devdoc": {
        "methods": {}
    },
    "userdoc": {
        "methods": {}
    }
}
